Claude Code, Gemini CLI, and GitHub Copilot Vulnerable to Prompt Injection via GitHub Comments
2026/04/21 CyberSecurityNews — “Comment and Control” と呼ばれる深刻なクロスベンダーの脆弱性クラスは、GitHub の pull_request/issue/issue_comment を悪用して AI コーディング・エージェントを乗っ取り、CI/CD 環境から API キーおよびアクセス・トークンを窃取するという、新たなプロンプト・インジェクション攻撃のカテゴリーである。

この攻撃名は、マルウェア・キャンペーンで用いられる、古典的な Command and Control (C2) フレームワークをもじったものである。調査により確認されたのは、広く展開されている 3 つの AI エージェントである、Anthropic の Claude Code Security Review/Google の Gemini CLI Action/GitHub Copilot Agent (SWE Agent) の 脆弱であることだ。

研究者 Aonan Guan によると、この攻撃の全ループは GitHub 内で完結する。攻撃者は悪意の PR タイトルまたは issue_comment を記述し、それを信頼されたコンテキストとして AI エージェントが読み取り、攻撃者の指示を実行し、認証情報を PR コメント/issue コメント/git commit を通じて外部へ送信する。したがって、外部サーバは不要である。
攻撃パターン
従来の間接プロンプト・インジェクションは受動的であり、被害者が AI に対して文書処理を明示的に依頼する必要がある。その一方で、Comment and Control は能動的である。GitHub Actions のワークフローは、pull_request/issues/issue_comment イベントで自動起動するため、必要なのは PR 作成や issue 登録だけであり、ユーザー操作なしにエージェントが起動される。
発見 1:Claude Code Security Review:PR タイトルから RCE
Anthropic の Claude Code Security Review アクションでは、サニタイズされない PR タイトルが、エージェントのプロンプトに直接埋め込まれる。さらに Claude CLI は “–disallowed-tools” または “–allowed-tools” の制限なしで実行されるため、ANTHROPIC_API_KEY や GITHUB_TOKEN などの、すべての環境変数をサブプロセスが継承する。
攻撃者は悪意の PR タイトルを作成し、プロンプト・コンテキストから脱出して Claude に whoami/ps auxeww/env の実行を指示するだけでよい。その結果、完全な認証情報ダンプが JSON 形式の “security finding” として PR コメントに投稿される。この脆弱性は、Anthropic により CVSS 9.4 Critical と評価され、HackerOne (#3387969) 経由で報告され、$100 の報奨金が支払われた。
発見 2:Gemini CLI Action:Issue コメントからの API キー漏洩
Google の Gemini CLI Action は、 issue title/issue/コメントを、”Additional Content” セクションとしてプロンプト・コンテキストに取り込む。その直後に偽の “Trusted Content Section” を挿入する攻撃者は、Gemini の安全指示を上書きし、誰もが 閲覧可能な issue コメントとして GEMINI_API_KEY を投稿させる。
この脆弱性は、研究者 Neil Fendley と Johns Hopkins University の協力者により Google VRP (#1609699) に報告され、$1,337 の報奨金が支払われた。
発見 3:Copilot Agent:三層防御のバイパス
GitHub Copilot Agent に関する発見は、最も技術的に高度なものである。GitHub は ランタイム・レベルで、3 つの対策 (環境変数フィルタリング/シークレット・スキャン/ネットワーク・ファイアウォール) を実装していたが、すべてが回避された。
- Env フィルタリング回避:UU() 関数は、子 bash サブプロセスからのみ機微な変数を除外する。そのため、当該サブプロセスから ps auxeww を実行すると、フィルタリングされていない親 Node.js プロセスおよび MCP サーバの “/proc/[pid]/environ” が読み取られ、GITHUB_TOKEN/GITHUB_COPILOT_API_TOKEN と、その他の 2 件の認証情報の取得が可能になる。
- Secret スキャン回避:GitHub のスキャナは、ghs_/ghu_ トークン・プレフィックスを検出するが、出力を Base64 エンコードして commit することで、パターン検出の回避が可能になってしまう。
- ファイアウォール回避:エンコードされた認証情報ファイルは、通常の git push により PR へと送信される。この操作は、ホワイトリスト対応であるため、通常の Copilot ワークフロー活動と区別できない。
さらに、ステルス性を高める攻撃ペイロードが、issue 本文内の HTML コメントに隠蔽される。GitHub の Markdown 表示では不可視であるが、AI エージェントにより完全に解析される。
コンポーネント別概要
| Component | Injection Surface | Exfiltration Channel | Credentials Leaked | Bounty |
|---|---|---|---|---|
| Claude Code | PR title | PR comment | ANTHROPIC_API_KEY, GITHUB_TOKEN | $100 |
| Gemini CLI | Issue comments | Issue comment | GEMINI_API_KEY | $1,337 |
| Copilot Agent | Issue body (HTML comment) | Git commit | GITHUB_TOKEN, COPILOT_API_TOKEN, +2 more | $500 |
上記の攻撃を受ける被害者は、無害なリクエストのみを確認し、意図せず Copilot に issue を割り当ててしまう。この件は、HackerOne (#3544297) に報告され、当初は既知の問題として却下されたが、研究者が Copilot の圧縮済み “index.js” からリバースエンジニアリングした証拠を提示したことで再調査され、最終的に $500 の報奨金が支払われた。
これら 3 つの脆弱性は、共通のアーキテクチャ上の欠陥を持つ。つまり、信頼されていない GitHub データが、本番用シークレットと無制限のツール・アクセスを、同一のランタイム内で保持される AI エージェントへと流し込んでいる点である。
研究者が指摘する通り、単一のプロンプト・インジェクション・パターンが、複数の主要 AI エージェントを同時に突破した初の公開事例であり、専用のランタイム防御を 3 層で備えていたエージェントでさえ回避された。
セキュリティ専門家たちが警告するのは、このパターンが GitHub Actions に限定されず、ツールやシークレットのアクセス可能な、AI エージェント全般に拡張される点である。その対象として含まれるのは、Slack ボット/Jira エージェント/メールエージェント/デプロイ自動化パイプラインなどである。
緩和策
- CI/CD パイプライン内の、すべての AI エージェント統合を監査し、異常な認証情報アクセス・パターンについて Actions ログを監視する。
- ブロックリストではなく許可リストを使用する。 “–allowed-tools” により必要最小限の機能のみを付与する。ps のブロックなどは、”cat /proc/*/environ” などの代替手段で容易に回避される。
- 最小権限のシークレットを適用する。issue トリアージなどの、読み取り専用タスクを実行するエージェントに対して、書き込み権限付き GITHUB_TOKEN を付与すべきではない。
- エージェントが外部アクションを実行する前に、また、認証情報へアクセスする前に、人間による承認ゲートを必須とする。
訳者後書:AI コーディング・エージェントの利便性を逆手に取る、きわめて巧妙な攻撃手法 “Comment and Control” を紹介する記事です。この問題の根本的な原因は、GitHub のプルリクエストやコメントといった、外部からの信頼できないデータが、強力な権限を持つ AI エージェントのプロンプトとして、そのままの状態で取り込まれてしまう設計にあります。自動化が進む中で、AI に与える権限の最小化や、実行前の人間による確認がいかに重要であるかを再認識させてくれる事例です。よろしければ、Prompt Injection での検索結果も、ご参照ください。

You must be logged in to post a comment.