悪意あるプルリクエストが、Claude CodeのプロジェクトスコープのModel Context Protocol(MCP)設定をコード実行のトリガーに変えてしまう可能性があることが分かりました。レビュアーがコードを評価する前に、開発者の機密情報が露出する恐れがあります。
Anthropicはこの挙動を、自社のワークスペース信頼モデルに沿ったものだとしています。つまり、あるフォルダを最初に信頼すると判断した時点が、セキュリティ境界として設定されているというわけです。
SecurityProducts & Services
研究者たちは、オープンソースプロジェクトのメンテナーがローカルリポジトリを信頼し、その後コントリビューターのプルリクエストのブランチをチェックアウトし、コマンドラインインターフェース(CLI)またはVS Code拡張機能経由でClaude Codeを起動するというシナリオを実証しました。
そのブランチにプロジェクトレベルの`.mcp.json`設定が含まれている場合、Claude Codeはセッション開始時にこれを読み込み、宣言されたMCPサーバーを自動的に初期化する可能性があります。
Claude CodeのRCE脆弱性
Model Context Protocol(MCP)サーバーは、AIコーディングエージェントが外部ツールやサービスにアクセスすることを可能にします。これらはリモートのHTTPサービスの場合もあれば、ローカルで起動するプロセスの場合もありますが、後者は大きなリスクをはらんでいます。
プロジェクト設定では、ローカルMCPサーバー向けにコマンドと引数を指定でき、これは開発者が既に持っているオペレーティングシステム上の権限で実行されると、ImmersiveLabsが報告しています。
概念実証(PoC)では、攻撃者は一見ごく普通の開発ツールに見せかけたMCPエントリーを、プルリクエストに紛れ込ませることができます。
開発者がブランチを切り替えた後にClaude Codeを開くと、この設定が読み込まれ、ローカルプロセスがサーバーの利用可能なツールの列挙を開始します。注目すべきは、コードのレビューやツールの呼び出しを明示的に要求する必要が一切ない点です。
この状況は、サプライチェーン攻撃さながらの危険なレビューシナリオを生み出します。悪意あるペイロードは、現在のユーザーがアクセスできる認証情報、たとえば環境変数、SSHキー、クラウドトークン、エージェント関連の設定などを標的にする可能性があります。
研究者たちは、ローカルMCPサーバーの起動はサインイン状態とは無関係であるため、Claudeアカウントの有効なセッションが確立される前であってもこの挙動が起こり得ると指摘しています。
この開示に含まれるAnthropicの回答では、ワークスペースを信頼するということは、リポジトリの設定に加え、その後そのディレクトリにチェックアウトされる内容(他のブランチを含む)も対象になると説明されています。
このモデルの下では、フォルダが既に信頼された後にプルリクエストが`.mcp.json`を変更したとしても、新たなセキュリティ境界を越えたことにはならないとされています。
この立場は、より広範なワークスペース信頼のアプローチを反映したものです。つまり、信頼は承認時点の正確なリビジョンや設定ファイルに暗号学的に紐づけられるのではなく、フォルダ単位で付与されるということです。
実務上の懸念として、ソースコード管理の操作によって、最初の承認後に実行可能なエージェント設定が持ち込まれても、開発者に再度確認が求められないという点が挙げられます。
Anthropicが公開しているセキュリティガイダンスによれば、Claude Codeはパーミッション、任意で有効化できるサンドボックス化、そしてコードベースの初回実行時や新規MCPサーバー利用時の信頼検証を採用しているとのことです。また、信頼できないコンテンツを扱う際は仮想マシン(VM)上で作業し、重要なファイルへの変更を検証するよう推奨しています。
SecurityProducts & Services
防御策
開発チームは、AIエージェントの設定を実行可能なコードとみなし、コードレビューポリシーにおいてその審査レベルを引き上げるべきです。具体的には以下の対策が考えられます。
- `.mcp.json`、`.claude/`、IDE設定、フック、ワークフローファイルに対して専用のレビューを義務付ける
- プルリクエストで新たに導入されたプロジェクトスコープのMCPサーバーをブロックまたはアラート対象にする
- 信頼できないブランチをローカルでチェックアウトする前に、エージェント設定をレビューする
- プルリクエストのレビューには、隔離されたVM、開発コンテナ、または制限付きサンドボックス環境を利用する
- アウトバウンドのネットワークアクセスを制限し、開発者のシェル環境に長期間有効なクラウドやソースコード管理の認証情報を残さないようにする
- ローカルツールの起動に使われるパッケージやコンテナイメージを含め、MCPの依存関係を監査する
この研究者は、実行可能な設定ファイルのハッシュ値に信頼を紐づけ、そうしたファイルが変更されるたびにユーザーへプロンプトを表示する方式を提案しています。この方法は完全な対策とは言えないものの、ブランチによって持ち込まれたMCP設定を、実行が許可される前に可視化できるようになります。
新たなフィッシングやマルウェアが企業に被害を及ぼす前に阻止しましょう。 世界15,000のSOCからライブインテリジェンスを統合
翻訳元: https://gbhackers.com/claude-code-rce-flaw/