powered by TechFeed
表示モード
Deep Dive

AIコーディングエージェントがコードを書く前に攻撃される — GitSpawnがClaude Code・Codex・Cursorなど7ツールで任意コード実行を可能に

9月3日、GBHackersが「GitSpawn Flaw Enables Arbitrary Code Execution in Claude Code, Codex, Cursor and Grok」と題した記事を公開した。この記事では、AIコーディングエージェントがGitコマンドを自動実行する際の挙動を悪用し、任意コードを実行できる脆弱性クラス「GitSpawn」について詳しく紹介されている。

9月3日、GBHackersが「GitSpawn Flaw Enables Arbitrary Code Execution in Claude Code, Codex, Cursor and Grok」と題した記事を公開した。この記事では、AIコーディングエージェントがGitコマンドを自動実行する際の挙動を悪用し、任意コードを実行できる脆弱性クラス「GitSpawn」について詳しく紹介されている。


AIコーディングエージェントが「プロンプト入力前」にコードを実行する

Manifold Securityの研究者が発見した「GitSpawn」は、AIコーディングエージェントがプロジェクトの文脈を把握するために自動的にGitコマンドを叩く動作を起点とした脆弱性クラスだ。Manifold Securityによる元レポートは「GitSpawn: Arbitrary Code Execution in AI Coding Agents」として公開されている。

問題の核心はGitの設定項目 core.fsmonitor にある。これはもともと、大規模リポジトリでの差分検出を高速化するために外部ヘルパーコマンドを呼び出せる正当な機能だ(Gitの公式ドキュメント参照)。しかしGitは .git/config に書かれたこの値をそのまま読み込んで実行する。AIエージェントが git statusgit diff を走らせた瞬間、リポジトリ側に仕込まれたコマンドが開発者のマシン上で起動する。

さらに深刻なのはタイミングだ。脆弱なエージェントは、ユーザーがプロンプトを入力する前、ワークスペースの信頼ダイアログを承認する前、あるいはサービスへの認証が完了する前にGit操作を走らせることがある。つまり開発者が何も操作していない段階で、攻撃者のコマンドがすでに実行済みになっている可能性がある。


通常の git clone では感染しない——攻撃の経路

GitSpawnには重要な前提がある。単純な git clonefetchpull では悪意ある設定は伝播しない。攻撃が成立するには、.git ディレクトリごとパッケージされたプロジェクトディレクトリを被害者が受け取る必要がある。

研究者が挙げる現実的な配送経路は次のとおりだ。

  • ZIPアーカイブ(PoC実証でも使用)
  • 共有ドライブや同期フォルダ(Dropbox等)
  • USBメモリ等のリムーバブルメディア
  • コンサルタントや開発チーム間でやり取りされるプロジェクトディレクトリ

攻撃が成功した場合、生成されるプロセスはAIエージェントの通常のサンドボックスや承認ワークフローの外側で動作する。アクセスされ得るものとして研究者は、SSHキー、クラウド認証情報、APIトークン、シェル設定ファイル、ソースコード、関連リポジトリを挙げている。しかもエージェントのバックグラウンドのGitサブプロセスを通じてコマンドが実行されるため、警告や承認ダイアログが一切表示されない場合がある。


影響を受けるツールと対応状況

Manifold Securityは7つのコーディングエージェントにまたがる8件の脆弱性を記録した。9月1日時点での対応状況は以下のとおりだ。

ツール 状況
Claude Codecore.fsmonitor バージョン2.1.196で修正済み(2.1.193で確認)
OpenAI Codex 他の研究者の報告を受けてパッチ済み
Cursor 同上、パッチ済み
Goose バージョン1.44.0で修正(CVE-2026-72718、深刻度7.0)
Hermes Agent バージョン0.21.0で脆弱性確認、未修正(CVE-2026-71963
Qwen Code バージョン0.22.3時点で脆弱性残存
Grok Build バージョン1.0.13時点で脆弱性残存

またClaude Codeには別経路の未修正問題も存在する。ultrareview パスが core.fsmonitor とは異なるGit設定の実行シンクを利用しており、こちらはまだ対処されていない。


開発者・ベンダーが取るべき対策

研究者はベンダー向けに、信頼プロンプトやサンドボックス境界を確立する前に、リポジトリ設定を無効化するか明示的にサニタイズした状態でGitを呼び出すことを推奨している。

開発者側の対策としては以下が挙げられている。

  • .git ディレクトリを含むアーカイブされたリポジトリは潜在的に危険なものとして扱う
  • パッチが公開され次第、影響を受けるコーディングエージェントを更新する

AIコーディングエージェントの普及が加速する中で、エージェントが自動的にコンテキストを収集する処理そのものが攻撃面になり得るという事実は、ツール設計における根本的な見直しを迫るものだ。

詳細はGitSpawn Flaw Enables Arbitrary Code Execution in Claude Code, Codex, Cursor and Grokを参照していただきたい。