MicrosoftがClaude Code GitHub Actionの警告を発表――CI/CDシークレットが漏洩する恐れ

AnthropicのClaude Code GitHub Actionは、AIエージェントが信頼できないGitHubコンテンツを処理する際に、CI/CDワークフローのシークレットを意図せず漏洩させる可能性があります。

このリスクが生じる原因は、エージェントがファイルを読み込む際に使用する一部のツールが、Bashのようなサブプロセス実行パスと異なり、サンドボックス化されていなかった点にあります。具体的には、Readツールが/proc/self/environへのアクセスを可能にし、ANTHROPIC_API_KEYをはじめ、ランナーが利用できる可能性のある他の認証情報を含む環境変数を返してしまいました。

研究者たちがこの調査を始めたきっかけは、公開リポジトリでプロンプトインジェクションの試みを発見したことでした。複数のベンダーのAIアシスト型ワークフローが、攻撃者の制御下にあるIssueの本文、プルリクエストの説明、あるいはコメントを処理していた事例が確認されています。

攻撃者は悪意ある命令を、通常のブラウジングでは目に見えない場所――たとえばIssue内のHTMLコメント――に埋め込みました。しかし、生のMarkdownを読み取るモデルにはその内容が見えてしまいます。

観測されたキャンペーンのひとつでは、人気のドキュメントプロジェクトのフォークが、AIボットにリポジトリの検索、ファイルの読み込み、コミットの作成、プルリクエストの作成といった幅広いツールを与えるパーミッシブなワークフローを使用していました。

攻撃者は一見ごく普通の機能追加リクエストのように見えるものの中に、正確なコマンドシーケンスを埋め込むことができます。AIはその手順に従い、対象ファイルを特定して目に見えないXSSペイロードを追記し、プルリクエストを作成します。そのPRがマージされると、サイトが改ざんされたページをレンダリングした際に、訪問者のセッショントークンが密かに外部に送信されてしまいます。

同じ攻撃ロジックにより、Readツールの脆弱性は非常に危険です。攻撃者がインジェクトされたプロンプトを通じてエージェントの動作に影響を与えられれば、CIランナー内でアクセス可能な機密ファイルへとエージェントを誘導できます。

GitHub Actionsのランナーには、リポジトリのコンテンツ、イベントのメタデータ、GITHUB_TOKEN、クラウドの認証情報、サードパーティAPIキーなどが含まれる場合があります。これらの値が、信頼できないコンテンツを読み取るAIエージェントからアクセスできる状態にあると、トラストバウンダリーが崩壊します。

ツールのパーミッション、モデルの選択、その他ほとんどのランタイム動作は、アクション側が設定すべきSDKのオプションです。

Microsoftの研究者たちがこの調査を開始したのは、公開リポジトリで複数のベンダーのAIアシスト型ワークフローが攻撃者の制御するIssueの本文、プルリクエストの説明、コメントを処理している中でプロンプトインジェクションの試みを発見したことがきっかけでした。

Anthropicは、Bashなどのサブプロセスに対して環境変数のスクラビングとBubblewrapサンドボックスを実装しており、それらのツール実行時に環境変数が漏洩しないよう対策を講じていました。

しかしReadツールはプロセス内でファイルを読み込む仕組みのため、サンドボックスを回避できる状態でした。Microsoftのチームはプロンプトインジェクションを構成し、まずモデルに/proc/self/environを読み取らせ、出力前に発見されたキーを難読化することで、安全フィルターとGitHubのシークレットスキャナーに検出されないようにしました。

MicrosoftによるClaude Code GitHubへの警告

Readツールはスクラビングされていない環境を返し、ANTHROPIC_API_KEYが露出しました。この状態になると、攻撃者はWebフェッチ、GitHubコメントへの書き込み、あるいはログへの出力を通じて認証情報を外部に持ち出すことが可能です。

MicrosoftはHackerOneを通じてAnthropicに本件を開示しました。AnthropicはClaude Codeバージョン2.1.128を2026年5月5日にリリースし、機密性の高い/procファイルへのアクセスをブロックすることで、この特定の漏洩経路に対処しました。

この緩和策により直接的なリスクは軽減されましたが、信頼できないGitHubコンテンツを処理するAIワークフローが、シークレット、ファイル読み取りツール、または外部通信チャネルへのアクセスも持つ場合は、依然として高リスクとして扱う必要があります。

実践的なセキュリティ強化策として「エージェントの2要件ルール」の適用が挙げられます。これは、いかなるAIワークフローも、信頼できない入力の処理、シークレットや機密アクセスの保持、状態変更や外部通信の実行という3つの条件を同時に満たさないよう徹底するものです。

すべてのトークンに最小権限を適用し、APIキーのスコープを厳密に絞り込み、異常な使用状況を監視してください。また、システムプロンプトを強化し、ワークフロー内でトラストバウンダリーを明示的に宣言することで、エージェントがIssueの本文、プルリクエスト、ファイルのコンテンツを命令としてではなく信頼できないデータとして扱うようにしてください。

さらに、ワークフローは単一の明確なタスクに限定し、そのスコープ外の要求はすべて拒否するよう設定することが重要です。

AIエージェントがCI/CDでより広く活用されるようになるにつれ、サンドボックス化、厳格なトークンスコープ設定、明示的なトラストモデル、最小権限といったこれらの対策は、自動化された開発パイプラインにおけるプロンプトインジェクションとシークレット漏洩を防ぐうえで不可欠なものとなっています。

翻訳元: https://gbhackers.com/microsoft-warns-claude-code-github/

ソース: gbhackers.com