ホームへ戻る

AI 安全/程式代理

GitSpawn、悪意ある `.git/config` でコーディングエージェントのサンドボックスを回避—開示時点で4件が未修正

複数の CLI コーディングエージェントが信頼確認前に Git のステータス照会を実行するため、リポジトリ内の実行可能な設定がユーザー権限でホスト上にて動作する。通常の `git clone` では攻撃は伝播しないが、完全な `.git` ディレクトリを ZIP、同期フォルダ、USB 経由で渡すと発動し得る。

البرمجية: كلود لقطة الشاشة: أنون · Public domain · Image source
zh-Hant

Manifold Security は、GitSpawn と名付けた共通の弱点を開示した。Claude Code、Codex、Cursor、Goose、Hermes Agent、Qwen Code、Grok Build などの CLI エージェントは起動時、プロジェクトのコンテキストを収集するため、バックグラウンドで `git status` や `git diff` などのコマンドを呼び出す。Git はインデックスの更新時にリポジトリ自身の `.git/config` を読み込む。`core.fsmonitor` が攻撃者の制御するプログラムに設定されている場合、Git は本来の仕様どおり、そのプログラムを直接実行する。子プロセスはエージェントのホスト側プログラムによって生成されるため、コマンドは承認プロンプトが表示される前に、サンドボックスの外側で、エージェントを起動したアカウントの権限を使って実行され得る。[Manifold の技術情報](https://www.manifold.security/blog/ai-coding-agents-git-hijack)によると、報告された8件のうち、Codex、Cursor、Goose、Claude Code の主要な起動経路は修正済みだった。一方、9月1日時点の再検証では、Qwen Code 0.22.3、Grok Build 1.0.13、Hermes 0.21.0、および Claude Code 2.1.252 の `ultrareview` 経路が依然として影響を受けていた。Goose の脆弱性には CVE-2026-72718、Hermes には CVE-2026-71963 が割り当てられている。[The Hacker News](https://thehackernews.com/2026/09/malicious-git-configs-can-make-claude.html)も、開示時点で4件が未修正だったことを確認している。

攻撃が成立する条件は明確にしておく必要がある。通常の clone、fetch、pull では、リポジトリのローカル設定は転送されない。攻撃者は `.git` を含むディレクトリ全体を、ZIP、共有ドライブ、同期サービス、または物理メディア経由で渡さなければならない。それでも、これは現実的なサプライチェーンへの侵入口となる。コンサルタントからの納品物、インシデント・フォレンジック用ファイル、社内プロジェクトのスナップショットは、このような方法でやり取りされることが多いためだ。エンジニアリングチームは、まずエージェントを更新し、未知の `.git/config` を隔離環境で検査するとともに、エージェントによるすべてのバックグラウンド Git 呼び出しで `core.fsmonitor=false` を明示的に上書きすべきである。ただし、このキーだけを無効化しても十分ではない。`core.hooksPath` や外部 diff/merge ツールなどの設定も、実行可能ファイルを参照している可能性がある。長期的な対策としては、リポジトリ設定を信頼できない入力として扱い、コンテキスト収集を同じ認可およびサンドボックス境界の内側に組み込む必要がある。

出典

  1. GitSpawn: A Single Flaw Lets Untrusted Repos Run Code in Claude Code, Codex, Cursor, and Grok
  2. Malicious .git Configs Can Make Claude, Codex, Cursor, and Other AI Agents Run Attacker Code
  3. Nested Bare Repository Can Execute Arbitrary Commands via core.fsmonitor