powered by TechFeed
表示モード
Deep Dive

Claude Code・Gemini CLI・Codex CLIすべてで実証済み — AIエージェントはすべての安全チェックを通過したままシークレットを漏洩できる

7月29日、Help Net Securityが「An AI agent can pass every safety check and still leak secrets」と題した記事を公開した。Claude Code・Gemini CLI・Codex CLIといった主要AIエージェントがデフォルト設定のまま実際のリポジトリでシークレットを漏洩させられることを実証した研究について詳しく紹介されている。

7月29日、Help Net Securityが「An AI agent can pass every safety check and still leak secrets」と題した記事を公開した。Claude Code・Gemini CLI・Codex CLIといった主要AIエージェントがデフォルト設定のまま実際のリポジトリでシークレットを漏洩させられることを実証した研究について詳しく紹介されている。


すべての安全チェックを通過したうえで、シークレットが漏れる

プルリクエストの説明欄にバグレポートが添付されている。AIボットがそれを読み、シェルコマンドをいくつか抽出し、承認を得て、実行結果をスレッドに投稿する。翌朝、メンテナーがやりとりを読む。

これは架空のシナリオではなく、Novee SecurityのファウンディングエンジニアであるElad Megedが、3社のベンダー自身のリポジトリに対して、それぞれのデフォルト設定のままで実際に実行・実証したものだ。 つまりこのフローで、Anthropicのパイプラインは実際にシークレットを外部に渡した。「安全チェックを通過している」ことと「シークレットが漏れない」ことは、同義ではない。


「プロンプトインジェクションは配達手段に過ぎない」

Megedは自動ペネトレーションテストのAIエージェントを構築しており、同じ攻撃技法をエージェント自身に向けた。

攻撃の本質について、Megedはこう語っている。

「あらゆるケースでプロンプトインジェクションは単なる配達手段だった。実際の脆弱性は、ハーネスがどのように信頼判断を行い、その判断が複数ステージをまたいでどう合成されるかにあった。コマンドは安全に見えるから承認される。出力はデフォルトだから公開される。どちらの判断も単独では間違っていない。組み合わさると、それが情報漏洩チェーンになる」

ここでいうハーネスとは、AIモデルの「意図」をシェルコマンド・ファイル読み取り・APIコール・ネットワークリクエストに変換する実行基盤のことだ。承認ロジック、ツール権限、パス制限、出力処理をすべて担い、人間が各ステップを確認しないワークフローでは、ハーネスがセキュリティ境界そのものになる。

なお、ここで登場するプロンプトインジェクションとは、外部から供給されるテキスト(プルリクエストの本文・コメント・ファイル内容など)に悪意ある指示を埋め込み、AIエージェントに意図しない操作を実行させる攻撃手法を指す。


Anthropicとの攻防:パッチを当てるたびに次の穴が見えた

MegedはClaude Code Actionanthropics/claude-codeのデフォルトワークフロー設定)に対して複数の脆弱性を報告した。このパッケージは数百万人がインストールしている。

「報告すると修正される。修正されると、何が安全とみなされるかの境界線が引き直される。そのパッチ自体が、境界がどこに移動したかを教えてくれる。つまり次にどこを見ればいいかが正確にわかる」

Anthropicは各ラウンドでバグバウンティを支払った。しかし最終ラウンドまでに、攻撃はすべての修正を生き延びたチャネルを通じてシークレットを回収するまでに進化していた。外部への接続なし、書き込みなし、ログなしという状態でだ。

バウンティ制度の構造的問題についてもMegedは指摘する。

「バウンティは『この特定のバグ、価値はこれだけ』という形で報われる。同じ研究者が同じアーキテクチャの継ぎ目を異なる角度から何度も破り続けても、各修正が単に境界を次のサーフェスに移動させているだけなのに、バウンティは『クローズした』という誤ったシグナルを生む」

なお、Codex CLIに関する脆弱性については、元記事執筆時点でCVSS番号やGHSA識別子などの公開識別子は記載されていない。


Gemini CLIはCVSS 10.0、Codex CLIはサンドボックスの前提が破られる

Gemini CLIgoogle-gemini/gemini-cli、GitHubスター数10万超)では、信頼できない入力を処理するCIワークフロー向けにGoogleのドキュメントが推奨するセキュリティ設定を使った状態でキルチェーンを実証した。キルチェーンとは、攻撃者が目標達成までに踏む一連のステップ(侵入→実行→情報取得→漏洩)の連鎖を指すセキュリティ用語だ。オペレーターが設定した制限が実行時点で未適用になっていた。この脆弱性はGHSA-wpqr-6v78-jr5gとして公開されており、深刻度はCVSS 10.0——共通脆弱性評価システム(CVSS)における最高値であり、「緊急(Critical)」に相当する——だ。

Codex CLIはデフォルトサンドボックスを持つが、ワークスペースを共有するマルチステージワークフローでは、あるステージが書き込んだ状態が次のステージで信頼済みコンテキストとして読み込まれる。保護パスリストには「何を保護すべきか」についての前提が埋め込まれており、そこが破られた。


問題の本質:「承認時点」と「消費時点」の信頼判断がずれている

Megedは構造的な修正の要件をこう定義する。

「構造的な修正とは、ラベルを信頼するのをやめ、決定時点ではなく消費時点で信頼を再検証することだ。今のハーネスは早期に安全判断を下す。『このコマンドは読み取り専用』『このドメインは事前承認済み』——そして下流のコンポーネントはその判断をそのまま継承する。読み取り専用のコマンドが公開出力チャネルに流れ込めば、実質的には読み取り専用ではない」

3社すべてで同じパターンが繰り返されているという事実が、これが特定ベンダーの実装ミスではなく、業界横断的なアーキテクチャの共通前提に起因していることを示している。


今週チェックすべきこと

Megedは本番でこれらのエージェントを運用しているチームへの監査ポイントを1つ挙げている。

「エージェントの出力、またはエージェントが影響を与えられる状態が、異なる権限を持つ後のステージで消費されるすべてのパスを追跡せよ。ハーネスが『安全』と言っている場所を見つけ、その後その出力に何が起きるかを問え。公開されるか?設定としてロードされるか?承認が前提としていたより広いアクセス権を持つツールに渡されるか?」

Megedはコードレベルの分析とライブデモを**Black Hat USA 2026**で発表予定だ。AIエージェントのセキュリティに携わる開発者・セキュリティエンジニアにとって、実装レベルで何が起きているかを把握する貴重な機会になるだろう。


詳細はAn AI agent can pass every safety check and still leak secretsを参照していただきたい。