ИИ-агенты выполняют произвольный код через git-конфигурацию до запроса доверия

vulnerability

Исследователи из Manifold обнаружили уязвимость в семи ИИ-агентах для программирования. Среди них Claude Code, Goose, Hermes, Qwen Code, Grok Build, OpenAI Codex и Cursor. Когда агент открывает папку с проектом, он запускает команды системы контроля версий Git в фоне. Git при этом читает настройки из конфигурации репозитория. Злоумышленник может добавить туда команду, которая запустится автоматически. Это происходит до подтверждения доверия рабочей области, а иногда даже до аутентификации. На момент публикации четыре из восьми подтверждённых проблем остаются неисправленными.

Уязвимость GitSpawn

Уязвимость получила название GitSpawn. Она использует стандартный механизм Git для вызова внешнего обработчика. Такая настройка обычно ускоряет обновление индекса в больших репозиториях. Однако Git берёт значение этой настройки из конфигурационного файла репозитория. Если в репозитории прописан вредоносный обработчик, Git выполняет его. Агент запускает команды, показывающие состояние репозитория или собирающие изменения, чтобы получить контекст проекта. Обновление индекса при этом происходит автоматически. Поэтому внешняя команда срабатывает до показа интерфейса, и пользователь ничего не замечает. Агент не отфильтровывает опасные настройки и не предупреждает о них.

Важно понимать, что опасность возникает только при передаче репозитория как файлов. При клонировании, то есть скачивании проекта с удалённого сервера, таких настроек не будет. Атака срабатывает, когда пользователь получает ZIP-архив или открывает общую папку. В таком репозитории уже есть служебные файлы Git, и агент читает их настройки. Злоумышленник может отправить архив по почте или положить его в синхронизируемую директорию. Когда получатель откроет файлы в агенте, вредоносная команда выполнится с его правами.

Успешная атака даёт злоумышленнику полный контроль над машиной разработчика. В его распоряжении оказываются SSH-ключи, облачные учётные данные и токены из переменных окружения. Через них можно проникнуть во внутренние системы компании. Код, который пишет разработчик, становится доступен для модификации. Например, атакующий может добавить в проект вредоносный код и потом распространить его вместе со следующими обновлениями. Всё происходит без уведомлений на экране, поскольку команда выполняется внутри процесса агента.

Проблема не ограничивается одним продуктом. Claude Code загружается из npm более 77 миллионов раз в месяц. Суммарно затронутые инструменты имеют почти 500 тысяч звёзд на GitHub. Это значит, что уязвимость потенциально затрагивает миллионы разработчиков. Кроме того, исследователи нашли аналогичную проблему и в других агентах, не названных в публикации. Судя по всему, небезопасный вызов Git стал типичной ошибкой для целого класса программ.

Пять из восьми отчётов вендоры закрыли как дубликаты. Это указывает на то, что к проблеме пришли несколько групп исследователей независимо. Например, заявка по Claude Code совпала с отчётом, отправленным в тот же день. А вот в Grok Build первый отчёт посчитали информационным. Только после повторного обращения зарегистрировали дубликат. Некоторые производители не спешат с ответом. Hermes получил шесть обращений по пяти каналам, но так и не предоставил комментарий.

Исправления уже вышли для Goose, OpenAI Codex и Cursor. Разработчики Goose исправили проблему в версии 1.44.0, ей присвоен CVE-2026-72718. Основной вектор атаки на Claude Code закрыли в версии 2.1.196. Однако второй вариант в Claude Code, связанный с функцией ultrareview, остаётся активным. Без обновления пока находятся Qwen Code и Hermes. Пользователям стоит избегать открытия незнакомых проектов в агентах и проверять конфигурацию репозитория до запуска. Разработчикам агентов исследователи рекомендуют отключать внешние обработчики в фоновых вызовах Git. Например, передавать параметр, который отключает помощника для индексации, или предупреждать пользователя о подозрительных настройках.

Технически вопрос не сложен. Но производители не уделяли ему внимания, пока исследователи не показали готовую цепочку атаки. GitSpawn демонстрирует, что уязвимости в ИИ-агентах не всегда связаны с моделями. Безопасность инструментов зависит от того, как агенты вызывают системные команды и обрабатывают непроверенные данные. Разработчики наделяют их правами пользователя, но забывают защитить от содержимого рабочей директории. Это подтверждает необходимость аудита фоновых операций в новых продуктах. Пользователям остаётся главное правило: не открывайте в агентах репозитории, которым нельзя доверять.

Ссылки

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