1 сентября 2026 года инженер по наступательной безопасности Francisco Rosales из Manifold Security опубликовал исследование GitSpawn: CLI-агенты для кодинга при старте сессии собирают контекст репозитория через git и при этом не вычищают настройки самого репозитория. Из-за настройки core.fsmonitor в .git/config вредоносный репозиторий, попавший на диск как файлы, исполняет свой код на хосте до любого промпта доверия, вне песочницы и мимо модели разрешений. Исследователь насчитал 8 находок в 7 инструментах; часть вендоров уже выпустила патчи, но четыре находки остаются без исправления.

Что произошло
Francisco Rosales проверил один общий примитив на семи CLI-агентах и получил восемь находок. Механизм простой: core.fsmonitor в .git/config задаёт имя команды, которую git сам запускает при обновлении индекса в git status и git diff. Агенты выполняют такие команды для сбора контекста при старте сессии, поэтому репозиторий, попавший на диск как файлы через архив, общую папку или USB, а не через git clone, исполняет свой код до любого промпта доверия, а на некоторых агентах до аутентификации или первого символа промпта. Исполнение идёт как subprocess самого агента, то есть вне песочницы и мимо модели разрешений, и атакующий получает SSH-ключи, облачные учётные данные и токены из окружения. Часть находок уже закрыта: у goose дефект оформлен как официальное уведомление GHSA-r5pp-p5r8-466r с номером CVE-2026-72718, оценкой CVSS 7.0 и исправлением в версии 1.44.0, Claude Code пропатчен в 2.1.196 после репорта 26 июня, а OpenAI Codex и Cursor закрыли свои находки как дубликаты и выпустили патчи. Ещё четыре находки на момент публикации оставались без исправлений.
Контекст
GitSpawn не первый случай, когда этот слой ломается одинаково: ранее тот же класс проблем закрывали поштучно, о чём говорят CVE-2026-45033 в GitHub Copilot CLI и CVE-2026-55607 в Claude Code, а в материалах исследования упоминается и зарезервированный CVE-2026-71963. Автор отмечает, что такие вещи «находят с нескольких направлений», однако GitSpawn стал первым явным аудитом одного примитива сразу по нескольким агентам, то есть переходом от отдельных багов к классу. Класс шире одного ключа: в ветке ultrareview присутствует второй, неназванный конфиг-ключ того же типа. Для модели угроз агентских продуктов это означает, что атака живёт на уровне процессов, а не поведения модели, поэтому существующие eval'ы безопасности поведения этот слой не покрывают.
Почему это важно для индустрии
Вендорам агентских CLI предстоит сделать санитизацию git-конфига во всех фоновых вызовах гигиеническим минимумом, например запускать команды вида git -c core.fsmonitor=false status. Пока это не стандарт, доверие превращается в главный актив агентских платформ, и enterprise-клиенты уже на этой неделе могут спрашивать вендоров о санитизации. В горизонте полугода ожидаемы sanitizer-обёртки над git в агентных фреймворках как дефолт, детекторы исполняемых ключей .git/config в CI и security-сканерах, а в интерфейсах агентов первые явные режимы safe/untrusted open и sandbox-by-default. На дистанции до двух лет класс может оформиться в отдельную категорию threat model под названием agent context ingestion, где санитизация внешних конфигов станет обязательным требованием к любому инструменту, который автоматически читает окружение пользователя, по аналогии с dependency-сканированием.
Почему это важно для пользователей
Если вы запускаете Claude Code, Codex, Cursor, Goose, Qwen Code, Grok Build или Hermes, не открывайте агентом репозитории, полученные как файлы через zip-архив, общую папку или флешку, не проверив .git/config: любая настройка, указывающая программу, может её исполнить. Обновите пропатченные версии: Claude Code не ниже 2.1.196, Goose не ниже 1.44.0, а находки в Codex и Cursor также закрыты. Для четырёх агентов без патча, среди которых Qwen Code, Grok Build, Claude Code в режиме ultrareview и Hermes Agent, ручная проверка .git/config перед открытием репозитория остаётся единственной защитой.
Что пока неизвестно / ограничения
Семь инструментов — это выборка, которую проверил автор, а не популяция всех CLI-агентов: критерий отбора из материалов не следует, поэтому обобщения про ошибку целого класса корректно читать как вывод по проверенной выборке. Из саммари не видно деталей каждого из восьми случаев, в том числе какие именно агенты детонируют до аутентификации. Неизвестны статус второго конфиг-ключа в ветке ultrareview и сроки патчей для агентов без исправлений, а состояние обновлений стоит перепроверять в уведомлениях вендоров, поскольку после публикации оно могло измениться. Ожидания про sanitizer-обёртки, детекторы в CI и режимы safe open являются интерпретациями, а не установленными фактами.
Источники
- Manifold Security — GitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grok
- GitHub Security Advisory goose — GHSA-r5pp-p5r8-466r: Arbitrary command execution via git core.fsmonitor (CVE-2026-72718)
Автор
Look at AI, редакция
