Git-конфиги позволили запускать код через ИИ-агентов для разработки

Исследователи Manifold Security обнаружили восемь уязвимостей в семи консольных ИИ-агентах для программирования, включая Claude Code, Codex, Cursor и goose. Вредоносная конфигурация Git внутри проекта может заставить агент выполнить команду на компьютере разработчика с правами его учётной записи, вне песочницы и без запроса на подтверждение.
Атака возможна, когда проект передают как набор файлов вместе с каталогом .git: в архиве, через общую папку, папку синхронизации или USB-накопитель. При обычном клонировании Git каталог конфигурации исходного репозитория не переносится, поэтому этот сценарий не срабатывает.
Как работает GitSpawn
Manifold назвала класс проблем GitSpawn. Его основой стала штатная настройка Git core.fsmonitor: она может содержать команду для отслеживания изменённых файлов. Git читает значение из .git/config самого репозитория и выполняет команду при операциях, обновляющих индекс, включая git status и git diff.
ИИ-агенты запускают эти команды в фоне, чтобы определить ветку и изменения в рабочем дереве. Если агент не нейтрализует настройки, заданные в репозитории, команда из конфигурации запускается до обращения к модели. Для ряда продуктов полезная нагрузка срабатывала ещё до подтверждения доверия к рабочей области, а в Qwen Code — до аутентификации пользователя.
Какие продукты затронуты
Исправления уже выпущены для goose 1.44.0, Claude Code 2.1.196 по пути core.fsmonitor, Cursor и Codex. OpenAI в тот же день опубликовала три CVE для Codex: уязвимыми названы Codex CLI с 0.102.0 по 0.130.0 и отдельные версии настольных приложений для macOS и Windows. Исправление для CLI появилось в 0.131.0.
При повторной проверке Manifold 1 сентября без исправления оставались Hermes Agent, Qwen Code, Grok Build и другой путь в Claude Code, связанный с командой claude ultrareview. Исследователи подтвердили его на Claude Code 2.1.252; на тот момент текущей версией была 2.1.258. Сообщений об эксплуатации этих уязвимостей не приводится.
Что проверить командам разработки
Перед открытием полученного каталога в ИИ-агенте стоит проверить .git/config, в частности параметры core.fsmonitor, core.hooksPath, attr.tree, а также clean- и process-фильтры. Проверить значение можно командой git config --get core.fsmonitor внутри репозитория.
Manifold также советует аудит глобальной настройки через git config --global --list | grep fsmonitor и при отсутствии необходимости отключить механизм командой git config --global core.fsmonitor false. Практический вывод для бизнеса: обновление агентов должно сопровождаться правилом не открывать в них полученные проекты с сохранённым каталогом .git без предварительной проверки конфигурации.

