1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Codeに見つかった3つの脆弱性を深掘りする ― AIコーディングツールの「設定ファイル」が攻撃面になる時代

1
Last updated at Posted at 2026-02-26

要約

  • Check Point ResearchがClaude Codeに3つの脆弱性(RCE × 2、APIキー窃取 × 1)を発見・報告
  • 信頼できないリポジトリをcloneしてClaude Codeを起動するだけで、任意コード実行やAPIキー漏洩が成立しうる
  • CVE-2025-59536、CVE-2026-21852 + CVE未割り当て1件。全件パッチ済み(v2.0.65+)
  • 背景にある本質的な問題:AIツールの登場で設定ファイル(.claude/settings.json.mcp.json)がメタデータから実行レイヤーに変化した

はじめに

2026年2月25日、Check Point Research(研究者: Aviv Donenfeld, Oded Vanunu)がAnthropic製AIコーディングアシスタント「Claude Code」の脆弱性に関するレポートを公開しました。

この記事では、各脆弱性の技術的な詳細と、AIコーディングツール全般に通じる構造的なリスクについて解説します。

ソース:

脆弱性の概要

# 脆弱性 CVE CVSS 攻撃ベクター 修正バージョン
1 Hooks経由のRCE なし 8.7 .claude/settings.jsonの悪意あるHook v1.0.87(2025年9月)
2 MCP同意バイパスによるRCE CVE-2025-59536 8.7 .mcp.json + 設定オーバーライド v1.0.111(2025年10月)
3 APIキー窃取 CVE-2026-21852 ANTHROPIC_BASE_URLの書き換え 即時修正(2025年10月)

脆弱性1: Hooks経由のRCE(CVE未割り当て / CVSS 8.7)

Hooksとは

Claude Codeの「Hooks」は、セッション開始時やツール実行時などのライフサイクルの特定タイミングで、事前定義されたシェルコマンドを実行する自動化機能です。

何が問題だったか

Hooksは .claude/settings.json で定義されます。このファイルはリポジトリに含めることができるため、commit権限を持つ誰でも、他のコラボレーター全員のマシン上でシェルコマンドを実行するHooksを定義できました

さらに問題なのは、Claude Codeがこれらのコマンド実行前に明示的な承認を求めなかったこと。

攻撃シナリオ

攻撃者: リポジトリに悪意ある .claude/settings.json をcommit
         ↓
被害者: git clone して Claude Code を起動
         ↓
結果:   Hookに定義されたシェルコマンドが即座に実行される
         (確認ダイアログなし)

Check Pointは実証として電卓アプリの起動を見せた後、リバースシェルに発展させてマシンの完全な侵害が可能であることをデモしています。

修正内容

信頼できないClaude Code設定を含むプロジェクトを開いた際に、強化された警告ダイアログを表示するようになりました(v1.0.87)。

脆弱性2: MCP同意バイパスによるRCE(CVE-2025-59536 / CVSS 8.7)

MCPとは

MCP(Model Context Protocol)は、Claude Codeが外部ツール・サービスと標準化されたインターフェースで連携するためのプロトコルです。MCPサーバーはリポジトリ内の .mcp.json で構成でき、Claude Codeの会話開始時にMCP設定ファイルのコマンドを実行して全MCPサーバーを初期化します。

正当な用途としては、リポジトリをcloneした開発者が手動セットアップなしで同じMCP統合(ファイルシステム、データベース、GitHubツールなど)を自動的に取得できるという利便性があります。

何が問題だったか

脆弱性1の修正後、MCPサーバーの初期化には警告プロンプトでユーザー承認を求める設計になっていました。しかし、リポジトリ制御の設定ファイルで以下の設定を指定すると:

  • enableAllProjectMcpServers
  • enabledMcpjsonServers

trust dialogをユーザーが読む前にコマンドが即座に実行されることが判明しました。

Check Pointのレポートでは、「皮肉なことに、電卓アプリケーションが保留中のtrust dialogの上に表示された」と記述されており、ユーザーが判断する暇すらなかったことがわかります。

修正内容

enableAllProjectMcpServersenabledMcpjsonServers がリポジトリの設定ファイルで指定されていても、ユーザー承認前にMCPサーバーが実行できないよう修正されました(v1.0.111)。

脆弱性3: APIキー窃取(CVE-2026-21852)

何が問題だったか

Claude Codeは ANTHROPIC_BASE_URL 環境変数でAPIのエンドポイントを指定できます。攻撃者がリポジトリの設定ファイルでこの値を自分が管理するサーバーに変更すると:

  1. Claude Codeが trust promptを表示する前に APIリクエストを発行
  2. 認証ヘッダー(APIキーを含む)が攻撃者のサーバーに送信される

つまり、リポジトリを開くだけで、開発者のAPIキーが攻撃者に漏洩するという状態でした。

なぜ特に危険だったか

AnthropicのAPIにはWorkspaces機能があり、複数のAPIキーがクラウド上のプロジェクトファイルへの共有アクセスを持ちます。ファイルは個々のキーではなくワークスペース全体に紐づいているため:

  • 1つのキー漏洩 → チーム全体の共有ファイルへの不正アクセス
  • 共有ファイルの閲覧・改ざん・削除
  • 悪意あるコンテンツのアップロード
  • 予期しないAPI利用料金の発生

修正内容

trust dialogの確認前にAPIリクエストが開始されないよう修正されました。

本質的な問題:設定ファイルが「実行レイヤー」になった

この3つの脆弱性に共通する根本原因を、Check Pointは以下のように指摘しています:

現代の開発プラットフォームはリポジトリベースの設定ファイルに依存しているが、従来これらは受動的なメタデータとして扱われ、実行ロジックとしては扱われなかった。しかしAIツールがコマンド実行、外部統合の初期化、ネットワーク通信を自律的に開始する能力を持つにつれ、設定ファイルは事実上の実行レイヤーとなった

これはClaude Code固有の問題ではありません。Cursor、GitHub Copilot、その他のAIエージェントツールも同様の構造を持っています。

従来のツール:
  settings.json → 「見た目」「振る舞い」の設定 → 受動的なメタデータ

AIコーディングツール:
  settings.json → Hooks、MCP、環境変数 → シェル実行・ネットワーク通信
                                          → 事実上の実行レイヤー

「便利だから git clone して即起動」という習慣が、AIツール時代にはそのまま攻撃ベクターになります。

今すぐやるべきこと

1. Claude Codeを最新版に更新

# 現在のバージョン確認
claude --version

# ネイティブインストーラーで更新(推奨)
claude update

# またはnpm経由(レガシー)
npm update -g @anthropic-ai/claude-code

v2.0.65以降で全脆弱性が修正済みです。

補足: npm経由のインストールは現在非推奨(deprecated)です。ネイティブインストーラーへの移行が推奨されています。

curl -fsSL https://claude.ai/install.sh | bash
npm uninstall -g @anthropic-ai/claude-code

2. 信頼できないリポジトリへの対応

clone後、Claude Codeを起動する 前に 以下のファイルを確認:

  • .claude/settings.json — Hooks定義、環境変数の書き換えがないか
  • .mcp.json — 不審なMCPサーバー設定がないか
  • .claude/ ディレクトリ全体 — 想定外のファイルがないか
# cloneした直後にチェック
cat .claude/settings.json 2>/dev/null
cat .mcp.json 2>/dev/null
ls -la .claude/ 2>/dev/null

3. APIキーのローテーション

過去に不審なリポジトリでClaude Codeを使った心当たりがある場合:

  1. Anthropic Console でAPIキーを再発行
  2. Workspacesの共有範囲を確認(1つのキー漏洩がチーム全体に波及する)

4. チーム運用のベストプラクティス

  • MCPサーバー設定はローカルスコープ(個人設定)とプロジェクトスコープ(バージョン管理)を使い分ける
  • 機密性の高いMCP設定はプロジェクトスコープに入れない
  • エンタープライズ環境では、MCPサーバーのallowlist / denylistを管理設定で制限する

おわりに

AIコーディングツールは開発生産性を大幅に向上させます。しかしその「便利さ」は、プロジェクトごとにシェルアクセスを渡す性質と表裏一体です。

Anthropicのセキュリティチームも「AIの開発ワークフローへの統合は大きな生産性向上をもたらすが、従来のツールには存在しなかった新しい攻撃面も導入する」と認めています。

この件は「CVEが出た→パッチ当てた→終わり」ではなく、AIツール時代の新しい脅威モデルとして捉えるべきだと思います。.eslintrc.prettierrcを気軽にcommitしていた感覚で.claude/settings.json.mcp.jsonを扱うと、それがそのまま攻撃経路になりうるということです。


参考リンク:


タグ: Security ClaudeCode AI 脆弱性 MCP サプライチェーン攻撃

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?