セキュリティ研究者が、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ツールの導入を検討してください。