Новости · Кибербезопасность

GitSpawn: как вредоносный .git/config обходит защиту Claude Code, Cursor и Codex через ZIP-архив

1 сентября 2026 года исследователи Manifold Security опубликовали отчёт GitSpawn — 8 уязвимостей в 7 AI-агентах. Файл .git/config в репозитории, полученном через ZIP-архив, USB или сетевой диск, заставляет инструменты выполнять произвольный код с привилегиями разработчика — в обход защитных диалогов и до аутентификации.

7 сентября 2026 Редакция Loadfile Чтение 6 мин
Вредоносный .git/config файл — уязвимость GitSpawn в AI-агентах

Коротко: GitSpawn — класс уязвимостей в AI-кодинг-агентах, при которых настройки файла .git/config (например, core.fsmonitor) используются как триггер выполнения кода. Атака работает, только если разработчик получает репозиторий в виде файлов — ZIP-архивом, с USB-носителя или по сетевому диску — а не клонирует его через git clone. Уязвимы Claude Code, Goose, Grok Build, Hermes Agent, Qwen Code, Codex и Cursor. Часть инструментов уже исправлена; Claude Code (вариант ultrareview), Hermes Agent, Qwen Code и Grok Build — нет.

Что произошло

1 сентября 2026 года Франсиско Росалес (Francisco Rosales), инженер по наступательной безопасности компании Manifold Security, опубликовал отчёт GitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grok. В нём описаны 8 уязвимостей в 7 инструментах для AI-разработки.

Суть проблемы: AI-агенты при старте собирают контекст рабочего каталога и для этого вызывают команды git — например, git status. Если репозиторий содержит специально подготовленный файл .git/config, некоторые его настройки воспринимаются git как команды для исполнения. Агент запускает их с привилегиями текущего пользователя — вне своей «песочницы» и без каких-либо диалогов одобрения.

В тот же день OpenAI независимо опубликовала три CVE, покрывающие идентичный класс уязвимостей в Codex — их прислали три разные исследовательские группы.

Как работает атака: файл конфигурации как оружие

Файл .git/config — стандартный текстовый конфиг-файл репозитория git. Он хранит параметры удалённых серверов, имя ветки и настройки поведения git. Часть этих параметров, в частности core.fsmonitor, задают внешние команды, которые git вызывает автоматически при определённых операциях.

Параметр core.fsmonitor — это хук файловой системы: git передаёт ему список изменённых файлов для ускорения работы в больших репозиториях. Злоумышленник подменяет значение этого параметра на произвольную команду оболочки. Когда AI-агент вызывает git status, git запускает указанную команду. Результат: произвольный код выполняется с правами разработчика, читает, изменяет или удаляет файлы, получает доступ к ключам и токенам в рабочем окружении.

Атака не работает при обычном git clone

Git отказывается применять хуки из клонируемого репозитория — это стандартная защита. GitSpawn срабатывает только когда разработчик получает каталог с .git/ как файлы: через ZIP-архив, USB-носитель, общую папку или облачный диск. Именно такой способ передачи проектов между командами остаётся распространённой практикой.

Какие инструменты уязвимы

Manifold Security проверила семь AI-агентов. По состоянию на 1 сентября 2026 года статус исправлений следующий:

ИнструментСтатусПодробности
Claude Code⚠ ЧастичноВариант core.fsmonitor закрыт в v2.1.196; вариант ultrareview не исправлен в v2.1.252
Goose✓ ИсправленоЗакрыто в версии 1.44.0; CVE-2026-72718, CVSS 7.0
OpenAI Codex✓ Исправлено3 CVE опубликованы OpenAI 1 сентября 2026
Cursor✓ ИсправленоИсправлено до публикации отчёта
Hermes Agent✗ Не исправленоУязвимо в v0.21.0; CVE-2026-71963
Qwen Code✗ Не исправленоУязвимо в v0.22.3
Grok Build✗ Не исправленоУязвимо в v1.0.13; выполнение по первому нажатию клавиши

Особенно опасен Grok Build: по данным Manifold, выполнение кода происходило при первом нажатии клавиши в интерфейсе агента. У Qwen Code код запускался до аутентификации пользователя.

Вектор через ZIP, USB и сетевые диски

Для аудитории Loadfile особенно важен механизм доставки: атака работает именно через передачу репозитория как набора файлов, а не через git clone. Это делает уязвимость актуальной для повседневных рабочих сценариев:

  • ZIP-архив с исходниками. Разработчик получает проект в виде ZIP-файла (по email, мессенджеру, корпоративному порталу), распаковывает его и открывает в агенте. Внутри архива — папка .git/ с вредоносным config.
  • USB-носитель или внешний диск. Принести проект на флешке — распространённая практика в изолированных средах.
  • Сетевой диск / облачный каталог. Синхронизированная папка в корпоративном хранилище, Google Drive или Dropbox может содержать .git/.

ZIP-архивы — потенциально опасный формат: они могут скрывать вредоносные структуры, которые срабатывают только после распаковки. GitSpawn — ещё один пример того, как безобидный на вид архив с исходным кодом может стать вектором атаки.

Что это значит для разработчика

Если вы работаете с AI-агентом (Claude Code, Cursor, Codex и другими) и регулярно открываете в нём проекты, полученные в виде ZIP-архивов или файловых копий, — убедитесь, что используете актуальную версию инструмента.

  • Для Claude Code: обновитесь до версии выше 2.1.252 и следите за патчем для варианта ultrareview.
  • Для Goose: обновитесь до 1.44.0 или новее.
  • Для Hermes Agent, Qwen Code и Grok Build: официальных исправлений по состоянию на дату отчёта нет. Не открывайте в этих инструментах репозитории из недоверенных источников.

Дополнительная мера: перед открытием незнакомого проекта в AI-агенте проверьте содержимое файла .git/config на наличие строк fsmonitor, editor, pager с нестандартными значениями. Подробнее о практиках кибербезопасности в разработке — в нашем материале.

Как снизить риск прямо сейчас

Получили проект ZIP-архивом? Перед открытием в AI-агенте откройте терминал и выполните: cat /путь/к/проекту/.git/config. Убедитесь, что в секции [core] нет строк вида fsmonitor = <команда>. Если есть — удалите строку до запуска агента.

Git-хуки и атаки через конфигурационные файлы

GitSpawn — не первый случай, когда .git/-каталог используется как вектор. Ранее мы писали об атаке через CVE-2026-60004 в Gitea, где произвольный git-хук запускался с привилегиями сервиса. Принцип схожий: атакующий использует легитимный механизм git (хуки, fsmonitor, конфигурационные команды) для выполнения произвольного кода.

Принципиальное отличие GitSpawn — жертва не запускает git напрямую. Код выполняет AI-агент в момент, когда он собирает контекст рабочего каталога. Пользователь может даже не знать, что агент обращается к git в фоне.

Источники

По теме: Безопасность веб-приложений — чек-лист уязвимостей и методов защиты для разработчиков.

Читайте также