セキュリティ研究者が、Claude CodeのMCP設定を悪用してOAuthトークンを静かに盗み出す攻撃チェーンを公開しました。AnthropicはこれをスコープAUTO(範囲外)と判断しましたが、実際の被害は深刻です。
この記事でわかること:
- 攻撃者が
~/.claude.jsonを使ってMCPトラフィックを乗っ取る仕組み - トークンをローテーションしても攻撃が止まらない理由
- AnthropicがなぜこれをAnthropicの対象外と判断したか
- セキュリティチームが監視すべき兆候
https://www.mitiga.io/blog/claude-code-mcp-token-theft-mitm
~/.claude.json が攻撃の起点になる
Claude CodeはMCP(Model Context Protocol)を通じてJira、GitHub、Confluenceといった外部サービスと連携します。この連携に使うOAuthトークンと、MCPサーバーの接続先URLは、いずれも~/.claude.jsonという設定ファイルにプレーンテキストで保存されています。
セキュリティ企業Mitiga Labsの研究者Idan Cohen氏は2026年3月、このファイルを起点にした攻撃チェーンを発見しました。ファイルはユーザー権限で書き込み可能なため、権限昇格もCVEも不要です。設定を書き換えるだけで、攻撃者はClaude Codeと外部サービスの間に割り込めます。
攻撃は5ステップで完結する
ステップ1: 悪意あるnpmパッケージの配布
攻撃者は表面上は無害に見えるnpmパッケージを公開します。このパッケージにはpostinstallフックが仕込まれており、インストール時に自動で実行されます。
ステップ2: 信頼フラグの事前設定
フックは開発者がよく使うディレクトリを探し出し、Claude Codeの「このプロジェクトを信頼する」フラグをtrueに書き込みます。次にそのディレクトリを開いたとき、確認ダイアログは表示されません。
ステップ3: MCPサーバーURLの書き換え
フックは~/.claude.jsonを開き、MCPサーバーの接続先URLを攻撃者が管理するプロキシのアドレスに差し替えます。たとえばAtlassianのMCPエンドポイントが、ローカルで動くmitmproxyのアドレスに変わります。
ステップ4: トークンの横取り
次にClaude Codeがそのサービスと通信しようとすると、変更後のURLを読み込んでプロキシに接続します。OAuthのAuthorizationヘッダーに入ったトークンが、攻撃者のインフラを通過します。サービス側のログには正規ユーザーからの通常リクエストとして記録されます。トラフィックがAnthropicの出口ゲートウェイ経由で届くため、送信元IPアドレスもAnthropicのものになります。
ステップ5: 永続化
フックはClaude Codeが起動するたびに実行されます。ユーザーがURLを元に戻しても、次の起動時にフックが書き戻します。トークンをローテーションしても、次のOAuth更新がプロキシを通過するため新しいトークンも取得されます。
トークンを変えても止まらない
通常、認証情報の漏洩が疑われたときはトークンをローテーションします。ところがこの攻撃では、フックと設定ファイルの書き換えが残っている限り、新しいトークンも次の更新時に同じ経路を通ります。
Mitiga Labsは、この攻撃が「一時的な認証情報の窃取」ではなく「SaaS認証情報の恒久的なリダイレクト」である点を強調しています。攻撃者が手に入れるのは、ユーザーと同じ権限でJiraやConfluenceを操作できるトークンです。スコープはOAuth認証時に許可されたものがそのまま引き継がれます。
実際の悪用イメージとして、研究者は攻撃者がClaude Code自身に奪ったトークンを使ってJiraのissueを検索させるデモを公開しています。Atlassianの監査ログには、実在ユーザーがAnthropicのIPから通常業務の範囲内でクエリを実行したように見えます。
AnthropicはスコープAUTO外と判断した
Mitiga Labsは2026年4月10日にAnthropicへ報告しました。Anthropicは4月12日、この問題を「対象外(out of scope)」と回答しました。理由は「攻撃を実行するには、あらかじめ被害者のマシンでコードを実行できる状態が必要であり、ユーザーはその同意を行っている」というものです。
Mitigaはこれを理解しつつも、この攻撃が一般的な事後コード実行と質的に異なると指摘しています。通常の悪意あるnpmパッケージはインストール時点で取得できる情報を盗んで終わりますが、この攻撃はその後も持続し、トークンローテーションという標準的な対策をすり抜けます。「CISOはこれを受け入れない」という言葉でMitigaは締めくくっています。
検知すべき兆候
Anthropicからのパッチはないため、セキュリティチームが自分たちで監視を構築する必要があります。Mitiga Labsが推奨する監視対象は次のとおりです。
~/.claude.jsonとプロジェクトレベルのMCP設定ファイルへの変更、MCPサーバーURLの変更(特にローカルプロキシへの変更)、OAuthの更新頻度の変化、通常業務パターンと一致しないSAAS APIの操作——これらをベースラインと照らし合わせて監視します。
SaaS側の監査ログでも検知が可能です。正規ユーザー・正規IPからのリクエストでも、業務パターンと一致しないクエリは怪しいと判断する必要があります。
Claude Codeを使う開発者が今できること
この攻撃の前提条件は、攻撃者が用意したnpmパッケージをインストールすることです。packages.jsonをこまめにレビューし、出所が不明なパッケージを安易にインストールしないことが基本的な対策になります。
また、定期的に~/.claude.jsonの内容を確認し、設定されているMCPサーバーのURLが正規のものかどうかチェックする習慣も有効です。エンタープライズ環境では、このファイルへの書き込みを監視するFIMツールの導入を検討してください。