CI のコーディングエージェントが乗っ取れた事例(2026年):Claude Code・Gemini CLI・Codex・Copilot

CI のコーディングエージェントが乗っ取れた事例(2026年):Claude Code・Gemini CLI・Codex・Copilot

AI開発者の手帖

AI開発者の手帖

2026年は、GitHub Actions などの CI で動かしたコーディングエージェントが、issue や PR の文面をきっかけに秘密を出したり、意図しない命令を実行したりする報告が続きました。対象は Claude Code、Gemini CLI、Codex、Copilot で、多くの件は修正版や文書の更新で対応されましたが、製品の修正が出ていない件もあります。CI でエージェントを動かしている、これから動かすチームに関係します。Claude Code の WebFetch の件(CVE-2026-54316)は、CI に限らず手元で使う場合も対象です。筆者は AI 開発ツールの仕様と安全な使い方を公式資料と照らして追い、有料記事でも扱ってきました。本稿は、報告した研究者や企業の記事、GitHub の勧告(advisory)、各社の公式ドキュメントを10月5日に突き合わせてまとめたものです。

事例を公表日の順に

Microsoft は、外部の人が書いた内容が AI のプロンプトに入り、その出力が実行につながり、CI の環境に秘密やツールがある、という流れがどの製品でも共通だと整理しています。修正は公表と別の日や別の版で出ているので、分かるものは公表日と分けて書きます。

研究者や企業のブログと GitHub の勧告をもとに、2026年の事例を公表日の順に並べたものです。修正の版や日付は、分かるものを本文の各項目に書いています。

  • 4月15日 Comment and Control。Aonan Guan らがブログで報告しました(日付はCSA の研究ノートの参考文献による)。Claude Code Security Review は PR のタイトルから、Gemini CLI Action は issue のコメントから、API キーなどが PR や issue のコメントに出ました。Copilot agent は issue 本文の HTML コメント(画面では見えません)から、トークン類が PR のファイルに入りました。Anthropic は、このアクションはプロンプトインジェクションへの耐性を高める設計にはなっていないと答え、ps の拒否と文書の追記で対応しました。GitHub は当初 Informative として閉じ、のちに再開して、以前から認識しているアーキテクチャ上の制約だと説明しています。
  • 4月24日 Gemini CLI の勧告(CVE-2026-12537)。Google の勧告によると、CI の Gemini CLI は作業フォルダを自動で信頼して .gemini/ の環境変数を読み込み、--yolo のときは許可リストも効いていませんでした。深刻度は Critical(CVSS 3.1 で10.0)、修正は gemini-cli 0.39.1 と run-gemini-cli 0.1.22 で、信頼を明示する設定が要る破壊的変更を含みます。
  • 5月20日 CVE-2026-47751。勧告によると、claude-code-action が PR の head をチェックアウトして .mcp.json を読み、MCP サーバーをすべて有効にしていたため、悪意ある設定を含む PR が runner 上のコード実行につながり得ました。修正は 1.0.74 で、@v1 など固定しない参照は修正済みです。
  • 6月1日 RyotaK(GMO Flatt Security)。ブログによると、claude-code-action の「書き込み権限のない人は起動できない」検査が GitHub App を無条件に通す作りで、外部の issue から回避できました。1月16日に最初の修正が入り、v1.0.94 までに修正済みです。allowed_non_write_users に "*" を指定した振り分けのワークフローは、回避なしでも GITHUB_TOKEN が漏れ得たとも書いています。RyotaK は、同種の設定ミスが2月17日に Cline で実際に悪用されたとも記しています。
  • 6月5日 Microsoft。ブログによると、Claude Code Action には Bash の実行で環境変数を消す仕組みがありますが、Read ツールは同じ隔離の外にあり、/proc/self/environ から API キーを読ませられました。5月5日に Claude Code 2.1.128 が /proc の機微なファイルの読み取りを拒否する形で対処しました。
  • 6月17日 CVE-2026-54316。勧告によると、Claude Code の WebFetch が huggingface.co をホスト名ごと事前許可していたため、攻撃者の用意した配置先を通じてデータを外へ持ち出せました。悪用には信頼できない内容をコンテキストに入れる必要があります。修正は 2.1.163 です。The Hacker News(THN)によると、Anthropic は Moderate(CVSS v4 で6.0)、NVD は CVSS v3.1 で9.1としています。
  • 8月3日 Pillar Security と google/adk-python。ブログの報告は2本です。1本目は、issue や PR で動く権限の低いエージェントに @gemini-cli のコメントを書かせると、メンテナー向けの権限の高いワークフローが起動した、というものです。そのエージェントは collaborator の人間アカウントだったため、起動条件を通りました。2本目は、外部の issue を分析するワークフローが、コード修正のワークフローを起動するコメントを自分で書き、実行コマンドの許可リストも git 自体がコマンドを起動できるため回避できた、というものです。Pillar の記載では、1本目について Google は7月9日に、社内の別の仕組みがあるため追加のソーシャルエンジニアリングなしには悪用できなかったと答え、報奨金の対象外としたうえで、リポジトリを強化しました。2本目は7月21日に Google が修正を確認し、VRP(脆弱性報奨プログラム)の最終判断を待っている段階です。
  • 8月6日 Novee Security(Black Hat USA での発表は8月5日、THN)。ブログは、各社が自社リポジトリで使う既定の構成に、権限のない人の issue 1本から到達できたと報告しています。Novee は、3社と同じ既定の構成が100以上の公開リポジトリで動いていたとしています。Claude Code は3回の修正と回避を繰り返し、1回目は git push のオプション経由で実行され(CVE なし)、3回目が CVE-2026-54316 です。Codex は、OpenAI 自身の issue 重複検出が同じジョブで Codex を2回動かし、1回目が書いた AGENTS.md を2回目が指示として読み込みました。Novee によると、OpenAI の立場はサンドボックスが意図どおりに動いたというもので、自社ではジョブを分けました。THN によると、製品の修正も CVE もありません。
  • 8月7日から9月23日 gh-aw の勧告。GitHub の gh-aw(Agentic Workflows)に5件出ています。同梱ワークフローの設定の重なりで、認証のない人が agent job でコードを実行できた件(GHSA-2cwf、修正 v0.86.1)、fork の PR へのラベルで、付けた人の権限でエージェントが起動した件(GHSA-r8gh、修正 v0.87.0)、CI 起動用トークンが成果物に含まれた件(GHSA-8h78、修正 0.85.4)などです。

各社の公式の注意書き

  • Anthropic:claude-code-action の文書によると、既定では書き込み権限のある人だけが起動でき、bot は起動できません。allowed_non_write_users は「RISKY」で、pull_request_target と workflow_run では、この action の前に信頼できない ref をワークスペースの根にチェックアウトしないよう求めています。
  • OpenAI:codex-action の文書は、PR 本文の HTML コメントや、PR 由来の内容に含まれる AGENTS.md などの指示ファイルを信頼できない入力とし、safety-strategy に drop-sudo か unprivileged-user を使うよう求めています。読み取り専用でも sudo があると鍵が出る、とも書いています。
  • Google:run-gemini-cli の信頼ガイドは、信頼できないデータを扱うなら最小権限に絞ってから信頼設定を入れ、PR のレビューは維持者が意図的に起動し、フォーク上では起動しないワークフローを勧めています。
  • GitHub Actions:2026年6月18日の告知によると、actions/checkout v7 は pull_request_target と、PR から起動された workflow_run で、フォークの PR のコードの取得を既定で拒否します。issue_comment など他のイベントは対象外です。既存のメジャー版にも後から適用され、@v4 のようにメジャー版のタグで指定したワークフローは自動で受け取りますが、actions/checkout の v1 には適用されません。保護を含まない旧版を SHA・マイナー版・パッチ版で固定したままでは自動適用されないので、保護を含む版(v7 など)へ更新する必要があります。
  • GitHub Copilot:cloud agent の文書によると、起動できるのは書き込み権限のある人だけで、HTML コメントなどの隠れた文字は渡す前に除去されます。ただしファイアウォールの文書は、迂回され得て包括的な対策ではないと書いています。

まだ分からないこと

  • Claude Code の git push のオプション経由の件は、Novee は Anthropic がすぐに修正したと書いていますが、THN によると CVE も、公表された修正版もありません。
  • gh-aw の GHSA-796c(カスタム MCP の設定欄の値がコマンドとして実行され得た件)は勧告に修正版の記載がなく、GHSA-x78f(外向き通信の許可リストを回避できた件)は、修正版の欄は 0.89.17 ですが、本文には「起草時点で修正版は未公開」との記述が残っています。影響する版の欄も「0.89.17 以下」で、修正版の欄と重なっています。
  • GitHub の文書は、Copilot が issue の HTML コメントを渡さなくなった時期を書いていません。

次にやること

自分のワークフローのうち、外部の人が書ける入力(issue・PR・コメント)を読むものを洗い出し、渡している秘密とトークンの権限、使っている action と CLI の版が上の修正版以降かを見直してください。actions/checkout は、保護を含む版(v7 など)を使っているかも確かめてください。権限の絞り方の手順と設定例は、有料記事で扱っていきます。

コーディングエージェントに何を許すかは、CI だけでなく手元の Claude Code でも問われます。既刊の有料記事では、権限とサンドボックスの層を使い分けて、止めたい操作を実際に止める方法を扱っています。

参考になったら、記事下部のライクとXの共有ボタンから応援してもらえるとうれしいです。


あなたも記事の投稿・販売を
始めてみませんか?

Tipsなら簡単に記事を販売できます!
登録無料で始められます!

Tipsなら、無料ですぐに記事の販売をはじめることができます Tipsの詳細はこちら
 

この記事の販売者

AI開発者の手帖

AIの新情報を、今日の判断と実践に。Codex・Claude Code・Geminiから新モデルまで、開発者の発信と公式資料をたどり、図解でかみ砕きます。出典・使える条件・注意点をセットで。気になるテーマから、手帖をひらいてください。

この販売者が書いた他の記事

  • Claude Code の cloud sessions が正式提供に:クレジットは利用枠より先に使われる(公式の補足あり)

  • Opus 5 から 5.5 へ移る前に:400 を返す破壊的変更4つと、エラーなしで変わる2つを自分のコードで探す

    ¥300
    1 %獲得
    (3 円相当)
  • 設定は書いたとおりに効くとは限らない——Claude Code 2.1.277が示した4つの経路と点検手順

    ¥300
    1 %獲得
    (3 円相当)

関連のおすすめ記事

  • ゼロから3日で始動|AIコンサル大全

    ¥124,800
    1 %獲得
    (1,248 円相当)
    水口一星

    水口一星

  • 【AI自動化・マネタイズ実例書】たった2週間〜機械オンチなママでもできた全作業過程

    ¥37,800
    1 %獲得
    (378 円相当)
    みお

    みお

  • 【5年更新型コンテンツ】AIを最大活用するためのリテラシー強化バイブル

    ¥59,800
    1 %獲得
    (598 円相当)
    こはく

    こはく