Критические уязвимости в Cursor ID позволяют удалённо выполнять код через инъекцию промптов

Cursor

Исследователи из Cato AI Labs обнаружили две опасные уязвимости удалённого выполнения кода в популярной среде разработки Cursor ID. Ошибки, получившие идентификаторы CVE-2026-50548 и CVE-2026-50549 (совокупное название DuneSlide), получили максимальную оценку 9,8 по шкале CVSS и позволяют атакующим компрометировать систему без какого-либо взаимодействия с пользователем. Эксплуатация строится на инъекции промптов - манипуляции входными данными, обрабатываемыми большой языковой моделью (LLM), которая выступает в роли ассистента разработчика.

Детали уязвимостей

Уязвимости затрагивают архитектуру изолированного выполнения команд в Cursor. Разработчики внедрили специальный "песочный" режим (sandbox), позволяющий выполнять команды терминала без явного запроса подтверждения у пользователя - для ускорения рабочего процесса. Однако механизм изоляции оказался недостаточно надёжным. Обе найденные ошибки позволяют обойти защиту и выполнить произвольный код на хост-системе. Примечательно, что для атаки не требуется никаких действий от самого разработчика: достаточно, чтобы Cursor обработал якобы безобидный промпт, содержащий управляемые злоумышленником данные - например, из вредоносного MCP-сервера (сервера для расширения возможностей модели) или подставленных результатов поиска.

Первая уязвимость связана с некорректной проверкой параметра рабочего каталога, который LLM может динамически задавать при построении политики изоляции. Cursor разрешает запись в текущий рабочий каталог при выполнении команд, но не проверяет, куда именно указывает этот параметр. Используя инъекцию промпта, атакующий может заставить систему назначить рабочим каталогом директорию за пределами проекта. Это даёт возможность записать произвольные файлы в критические области, в том числе перезаписать сам бинарный файл песочницы Cursor. После такой подмены защита отключается, и все последующие команды в той же цепочке выполняются без ограничений, что ведёт к полной компрометации системы.

Вторая ошибка возникает из-за некорректной обработки символических ссылок (symlink). Cursor пытается канонизировать пути к файлам, чтобы убедиться, что они не выходят за границы проекта. Однако если канонизация не удаётся - например, из-за недоступного или несуществующего пути - система возвращается к доверию исходному пути символической ссылки. Злоумышленник может создать символические ссылки на запись, указывающие на критически важные файлы за пределами проектной папки. Используя встроенные возможности IDE по записи файлов, атакующий перезаписывает защищённые бинарные файлы, в частности сам компонент песочницы, что снова приводит к выходу из изоляции и выполнению произвольного кода.

Обе уязвимости демонстрируют принципиальное изменение модели угроз. Инъекция промпта становится мостом между недоверенными внешними данными и чувствительными внутренними путями исполнения. В отличие от классических эксплойтов, здесь атака использует логику принятия решений большой языковой модели для манипуляции поведением системы на уровне ядра - иными словами, ассистент разработчика превращается в вектор атаки. Учитывая, что Cursor, по заявлениям компании, используется более чем половиной компаний из списка Fortune 500, потенциальный масштаб угрозы крайне высок.

Cato AI Labs сообщили о проблемах в феврале 2026 года. Первоначально отчёт был отклонён разработчиками Cursor, однако после эскалации уязвимости были признаны. Исправления для обеих ошибок вышли в версии Cursor 3.0, которая распространялась в апреле и июне 2026 года. Присвоение идентификаторов CVE в июне подтверждает серьёзность найденных проблем и их влияние на индустрию.

Пользователям Cursor настоятельно рекомендуется обновить среду разработки до актуальной версии. В качестве временных мер можно ограничить использование внешних MCP-серверов и тщательно проверять источники данных, которые обрабатывает LLM-ассистент. Однако коренное решение - в пересмотре архитектуры безопасности: требуется жёсткая валидация всех параметров, передаваемых в механизм изоляции, и полное исключение возможности обхода песочницы через символические ссылки или манипуляции рабочим каталогом.

Ситуация с DuneSlide подчёркивает общую тенденцию: инструменты разработки на базе больших языковых моделей расширяют поверхность атаки за пределы традиционных границ. Злоумышленники всё активнее используют "логические" уязвимости, где атака строится не на переполнении буфера или ошибках памяти, а на доверии к решениям LLM, способным инициировать опасные команды. По мере внедрения ИИ-ассистентов в процессы написания и тестирования кода такие угрозы будут только множиться.

Ссылки

Комментарии: 0