悪意のあるコードを1行も含まない GitHubリポジトリが、開発者のマシンを密かに侵害できる——Mozilla のゼロデイ調査ネットワーク(0DIN)のセキュリティ研究者たちが、そのような警告を発しました。
攻撃の仕組み
この概念実証(PoC)攻撃は、Claude Code などのAI搭載コーディングエージェントを標的とし、間接プロンプトインジェクションを利用してAIエージェントを操作し、開発者が明示的に承認していない有害な操作を実行させるものです。
攻撃の流れは以下のとおりです。
- 悪意のあるリポジトリが、READMEファイルに一見正常なセットアップ手順を提示
- Pythonパッケージが初回使用時に意図的に失敗し、ユーザーに初期化コマンドの実行を促す
- そのコマンドがシェルスクリプトを呼び出し、攻撃者が管理するDNS TXTレコードを解決して、その内容を直接bashにパイプ
実行される悪意のあるペイロード(今回はリバースシェル)は、リポジトリ内には存在しません。実行時にのみ取得・実行されるため、ペイロードはコードレビュー、静的解析ツール、そしてリポジトリを読み取るAIエージェントのいずれに対しても「見えない」状態になります。
エージェントはセットアップ手順に従って処理を進め、指示どおりに想定内のエラーから回復し、気づかないうちに攻撃者のサーバーへの接続を開いてしまいます。そこから先は、攻撃者が開発者本人の権限で動作するインタラクティブシェルを手に入れた状態となります。
「AIエージェント型コーディングツールは、この攻撃に必要なすべてのものにアクセスできます。環境変数、認証情報、APIキー、ローカル設定ファイルといったプライベートデータが含まれます」と、研究者たちは指摘しています。
開発者へのアドバイス
0DINは、AIコーディングエージェントがコマンド文字列そのものだけを評価するのではなく、実行時に実際に何が実行されるかを開発者に提示できるよう設計することを推奨しています。
「開発者は、AIツールが推奨する内容に関わらず、見慣れないリポジトリのセットアップ手順やスクリプトを信頼できないコードとして扱うべきです」と研究者たちは付け加えています。