Неделя побегов из песочницы: 7 уязвимостей в четырёх ИИ-помощниках для кода

· Безопасность
Исследователи Pillar Security обнаружили семь способов обойти изоляцию в Cursor, Codex, Gemini CLI и Antigravity. Почти во всех случаях агенту не пришлось ломать песочницу напрямую — достаточно было записать файл, которому потом доверял хост.

cover.svg

Компания Pillar Security опубликовала серию исследований под названием «Неделя побегов из песочницы»: по одному разбору в день, каждый показывает свой маршрут через границу изоляции. За несколько месяцев исследователи нашли и воспроизвели семь способов обойти защиту в четырёх популярных ИИ-помощниках для программирования — Cursor, Codex, Gemini CLI и Antigravity.

Главный вывод: агенту почти никогда не нужно взламывать песочницу напрямую. Достаточно записать нечто, что доверенный компонент за пределами песочницы позже запустит, загрузит или сочтёт безопасным. Иными словами, зона поражения агента — это не только его собственный процесс, но и всё, что он может записать и чему хост потом доверяет.

Четыре повторяющихся сценария

Находки складываются в четыре типовых провала.

Чёрные списки проигрывают сложности ОС. Профиль macOS Seatbelt в Antigravity работал по принципу «разрешено по умолчанию» и обязан был помнить каждую опасную возможность системы. Как формулируют авторы, это не песочница, а список того, что кто-то не забыл заблокировать, — и он всегда на одну строку короче нужного.

Конфигурация проекта — это код. Агент записывал файлы, которые ему разрешено записывать, а побег происходил позже, когда хост воспринимал их как доверенную конфигурацию. Так сработали задача в .vscode, которую Antigravity потом запускал сам, hook-конфиг в .claude, подменённый интерпретатор виртуального окружения, к которому обращалось расширение Python в Cursor, и трюк с Git-метаданными, запускавший выполнение через fsmonitor.

«Безопасные» команды не безопасны по имени. Разрешающий список Codex доверял команде git show, потому что название выглядело как чтение. Но у Git множество флагов, меняющих поведение: команда может писать файлы, подгружать конфиг, вызывать хелперы и триггерить хуки. Вопрос не «безопасна ли git show», а какой именно вызов, с какими аргументами и в каком каталоге выполняется.

Локальные демоны живут вне коробки. Находка с сокетом Docker напоминает: изолировав процесс агента, вы не изолировали хост. Привилегированный демон — это вторая среда исполнения, и если агент до неё дотягивается, он делает руками демона то, что ему самому запрещено.

Реакция вендоров

Часть проблем уже закрыта. Уязвимость с сокетом Docker исправлена (GHSA-v4xv-rqh3-w9mc), проблемы с venv, fsmonitor и hook-конфигом устранены в Cursor (последней присвоен CVE-2026-48124), а дыру в allowlist Codex залатали в версии 0.95.0 с выплатой вознаграждения. Google, впрочем, обе находки в Antigravity квалифицировала как «обычное поведение приложений» и понизила приоритет, посчитав эксплуатацию сложной, — при этом отчёты назвали «исключительно качественными».

Основная мысль исследователей адресована тем, кто закупает такие инструменты: недостаточно спросить «есть ли песочница». Нужно понимать, что агент может записать, какие компоненты хоста этим записям доверяют, до каких демонов он дотягивается и какие команды проходят без подтверждения. Агентские инструменты стали инфраструктурой раньше, чем их начали контролировать как инфраструктуру, — и это, по мнению Pillar, требует отдельной модели угроз.


Источник: Lobsters

Комментарии

Войдите, чтобы комментировать.

  • Пока нет комментариев.