Comment and Control:PRのテキストでCIエージェントからシークレットを窃取
pull requestやissueのテキストに仕込まれたprompt injectionにより、Claude Code Security Review、Gemini CLI Action、GitHub Copilot AgentからCIのシークレットが窃取されました。
何が起きたか
2026年4月15日、研究者のAonan Guanが、CIで動作するAIエージェントを標的とした一連の攻撃「Comment and Control」を公開しました。pull requestやissueに書き込まれたテキストに含まれる指示に、ワークフローのシークレットへアクセスできるエージェントが従ってしまいました。Claude Code Security Review、Gemini CLI Action、GitHub Copilot Agentがいずれも影響を受けました。
The Registerによると、Anthropic、Google、Microsoftはこの報告に対してバグ報奨金を支払いました。CVEは発行されていません。
なぜ成功したか
これらのワークフローでは、pull requestやissueを作成できる人なら誰でも書き込めるテキストを、リポジトリのシークレットを持ち、データを投稿または送信できるエージェントに渡しています。これはCI runner上で致命的な三要素がそろった状態です。
対策
- 外部の人がpull request、issue、コメントで起動できるエージェントのジョブには、シークレットを渡さないでください。
- そのようなジョブには読み取り専用tokenを付与し、レビューに必要な範囲を超えるネットワークアクセスを許可しないでください。
- PRのタイトル、説明、コメント、diffはすべて信頼できない入力として扱ってください。
- シークレットが必要なジョブは、メンテナーが実行を承認した後にのみ実行してください。
信頼できないCI実行からシークレットを隔離する最小権限の認証情報を使う危険な3要素を断つ