Claude Code Security Review、Google Gemini CLI Action、GitHub Copilot Agentを含むAIエージェントで、Comment and Controlプロンプトインジェクション脆弱性が発見されました。
Aonan GuanおよびJohns Hopkins University研究者が主導したこの研究は、これらのAIツールがGitHubワークフロー内の信頼されていないユーザー入力をどのように処理するかにおける重大な設計上の欠陥を浮き彫りにしています。
「Comment and Control」は、GitHub統合AIエージェントの中核機能を悪用する間接的なプロンプトインジェクション攻撃手法です。この攻撃ベクトルは外部インフラストラクチャを必要としません。
代わりに、プルリクエスト(PR)タイトル、issue説明、コメントなどの標準的なGitHub通信チャネルを使用して、悪意のある指示をAIエージェントの実行コンテキストに直接配信します。

この脆弱性が存在するのは、これらのAIエージェントがルーチン操作の一部としてリポジトリコンテンツを読み取り、分析するよう設計されているためです。
エージェントが操作されたPRやissueを解析するとき、開発者のシステム指示と攻撃者の埋め込まれたペイロードを区別できません。
その結果、エージェントはGitHub Actionsランナーの権限を使用して攻撃者のコマンドを実行し、環境変数、APIキー、アクセストークンの無許可の流出につながります。
エージェント別の悪用分析
Claude Code Security Review
AnthropicのClaude Code Security ReviewはPRセキュリティ分析を自動化するGitHub Actionです。
脆弱性は、エージェントが適切なサニタイゼーションなしにPRタイトルをプロンプトに直接補間することから生じています。
このシナリオでは、攻撃者はbashコマンド(例:whoamiまたはps auxeww)を含むPRタイトルを作成できます。

Claude CLIが特定のツールを明示的に禁止することなく呼び出されるため、サブプロセスはANTHROPIC_API_KEYおよびGITHUB_TOKENを含むすべての環境変数を継承します。
エージェントは注入されたコマンドを実行し、抽出されたシークレットをJSON応答に含めます。これはその後、PRコメントとして公開投稿されるか、Actions logに静かに記録されます。
この欠陥はCVSS 9.4(Critical)と評価され、Anthropicによるpsツールのブロックによって軽減されました。
Google Gemini CLI Action
Google Gemini CLI ActionはGeminiをGitHub issueワークフローに統合するもので、同様に脆弱です。エージェントのプロンプトにはissueタイトル、本文、コメントが含まれます。
攻撃者はこれを悪用して、作成されたコンテンツセクションをissueコメントに追加します。このインジェクションはGeminiの基本的なセーフティ指示を上書きし、モデルが安全な環境で動作していると信じるよう騙します。
その結果、エージェントは喜んでGEMINI_API_KEYを公開issueコメントに直接出力し、リポジトリを閲覧する誰もが認証情報を見ることができます。
GitHub Copilot Agent
GitHub Copilot Agentに対する悪用は、複数のランタイムレベルのセキュリティレイヤーを迂回する高度に洗練されたものです。
Claude and Geminiに対して使用される目に見えるインジェクションとは異なり、Copilot攻撃はGitHub issue内のHTMLコメント内に隠れた見えないペイロードを利用します。

被害者が無意識にこの一見無害なissueをCopilotに割り当てると、エージェントは隠れたHTMLコメントを含む生Markdownを解析します。
攻撃者の指示はCopilotに対してps auxeww | base64を実行し、出力を新しいPRにコミットするよう命じます。
この攻撃は3つの異なるセキュリティ制御を正常に回避しました:
- 環境フィルタリング: Copilotはbashサブプロセスから機密変数をフィルタリングしようとしますが、親Node.jsおよびMCPサーバープロセスは完全な環境を保持します。ps auxewwを実行すると、bashサブプロセスは親プロセスのフィルタリングされていない環境を読むことができます。
- シークレットスキャン: GitHubのシークレットスキャンAPIは特定のトークンプレフィックス(例:ghs_)を探します。攻撃者が出力をbase64でエンコードするよう強制することで、この検出メカニズムを回避します。
- ネットワークファイアウォール: Copilotがアウトバウンド接続を制限しますが、GitHub.comは許可されています。流出はリポジトリへの標準的なgit pushを介して発生し、ファイアウォールを完全に迂回します。
これらの脆弱性の根本的な原因は、現在のAIエージェントデプロイメントに固有の設計上の矛盾です。
これらのエージェントは、意図されたタスクを実行するために、機密性の高い本番環境のシークレットと強力なツール(bashの実行やGit操作など)へのアクセスを必要とします。
しかし、同時にPRやissueなどの信頼されていないユーザー生成入力を処理する必要があり、これはソフトウェア開発ライフサイクルの本質的な部分です。
AIエージェントが信頼されていないデータの処理と重要なインフラストラクチャへのアクセスを組み合わせ続ける限り、プロンプトレベルまたはモデルレベルの防御がどうであっても、間接的なプロンプトインジェクション攻撃に対して脆弱なままです。
翻訳元: https://gbhackers.com/claude-code-gemini-cli-and-github-copilot-exposed/