Исследователи обнаружили две уязвимости в широко используемой интегрированной среде разработки (IDE) Cursor с поддержкой ИИ, которые могут быть использованы посредством внедрения запросов (prompt injection) для достижения удаленного выполнения кода (RCE).
Две эти уязвимости, отслеживаемые как CVE-2026-50548 и CVE-2026-50549, позволяют злоумышленникам выйти из песочницы выполнения команд Cursor — защитного слоя, который должен предотвращать несанкционированные действия внутреннего агента ИИ в базовой операционной системе.
«Для эксплуатации не требуются предварительные привилегии пользователя или какое-либо специфическое взаимодействие с пользователем», — заявили исследователи из Cato Networks, обнаружившие эти недостатки, в своем отчете. «Эксплойт срабатывает, когда жертва вводит безобидный запрос, который непреднамеренно загружает полезную нагрузку, контролируемую злоумышленником, из недоверенного источника, такого как MCP-сервер или результат веб-поиска».
Cursor, недавно приобретенный компанией SpaceX за 60 миллиардов долларов акциями, производит один из наиболее широко используемых инструментов для кодирования с помощью ИИ в корпоративном секторе. Обе уязвимости были устранены в версии 3.0 IDE Cursor, выпущенной в апреле.
Встроенная уязвимость в LLM
Большие языковые модели (LLM) по своей природе уязвимы к вредоносным инструкциям, которые могут быть скрыты в обрабатываемом ими контенте. Это особенно опасно в эпоху агентного ИИ, когда LLM объединяются с различными инструментами, включая браузеры и API, которые позволяют им получать доступ к различному общедоступному контенту третьих сторон, например, анализировать веб-страницы в результатах поиска и RSS-лентах, код в репозиториях, комментарии в трекерах ошибок, электронные письма во входящих ящиках пользователей и их документы.
Защита инструментов ИИ от внедрения запросов — очень сложная задача, которая обычно включает многоуровневый подход, включающий защитные механизмы, встроенные в модель лабораторией ИИ, которая ее создала, инструкции в системных запросах обрабатывать определенный контент как пассивные данные, модели-супервизоры, работающие поверх LLM и обрабатывающие данные, традиционную фильтрацию по ключевым словам, сегментацию контекста, гранулярный контроль доступа, возврат человека в цикл для утверждения конфиденциальных операций и многое другое.
IDE с поддержкой ИИ, такие как Cursor, а также интерфейсы для агентного кодирования через командную строку, обычно по умолчанию запрашивают у пользователя одобрение для каждого изменения файла или команды, которую им необходимо выполнить. Но это непрактично для автономных рабочих процессов кодирования и быстро приводит к «усталости от одобрения» (approval fatigue).
Другой способ решить эту проблему — запускать эти автономные рабочие процессы внутри контейнеров, виртуализированных сред или песочниц, чтобы в случае, если агенты выполнят вредоносные инструкции из-за внедренных в сторонние источники данных вредоносных запросов, ущерб был ограничен. Cursor использует песочницу выполнения команд, которая по умолчанию ограничивает запись файлов каталогом текущего проекта.
Логические ошибки в слое изоляции
Однако исследователи Cato обнаружили, что инструмент run_terminal_cmd поддерживает параметр с именем working_directory, который позволяет программно переопределить этот путь по умолчанию.
«Внедрение запроса (переданное через безобидный запрос MCP-сервера или отравленный веб-результат) может направить LLM на установку working_directory в путь, контролируемый злоумышленником, за пределами области проекта», — объяснили они.
Используя этот недосмотр, злоумышленники могли перезаписать сам исполняемый файл cursorsandbox из пути приложения или записать вредоносные скрипты в файл конфигурации оболочки, который загружается каждый раз, когда пользователь выполняет команду, или в системные папки автозапуска, такие как ~/Library/LaunchAgents в macOS.
Отдельно исследователи также обнаружили, что злоумышленники могут дать команду агенту Cursor создать символическую ссылку (symlink) внутри каталога проекта, указывающую на файл, находящийся за пределами этого каталога.
«По умолчанию Агент Cursor пытается канонизировать пути (разрешая символические ссылки) для определения их истинного местоположения и проверки того, что они находятся в корне проекта», — заявили исследователи. «Уязвимость возникает потому, что логика канонизации содержит опасный запасной вариант: если канонизация не удается (например, когда путь не существует или если у пути отсутствуют права на чтение в одном из его каталогов), Cursor возвращается к использованию исходного пути символической ссылки внутри каталога проекта».
Эти две уязвимости, которые Cato назвала DuneSlide, могут привести к полному компрометации базовой операционной системы посредством выполнения кода за пределами ограниченной песочницы Cursor. Более того, они показывают, что внедрение запросов может стать вектором атаки для использования уязвимостей в программном обеспечении, используемом для реализации агентов ИИ.
Cursor далеко не единственная IDE или среда для кодирования на базе ИИ, и, по словам исследователей, не единственная, имеющая подобные логические ошибки в своих слоях изоляции.
«Если бы эти проблемы были единичными случаями компрометации через внедрение запросов, мы могли бы отнести их к конкретным уязвимостям», — заявили они. «Однако Cato AI Labs в настоящее время занимается ответственным раскрытием уязвимостей во всех популярных инструментах кодирования, подчеркивая необходимость более системного подхода к защите».
Всегда имейте в виду, что редакции могут придерживаться предвзятых взглядов в освещении новостей.
Автор – Lucian Constantin




