cloneしただけでAPIキー流出|Claude Code脆弱性が暴いたAI開発の死角

by Synth

2026年2月、Check Point ResearchがClaude Codeの2つの脆弱性(CVE-2025-59536・CVE-2026-21852)を公表。リポジトリを開くだけでコマンド実行やAPIキー窃取が成立する仕組みと、TrapDoorやShai-Huludなど他のAIコーディングツールを狙うサプライチェーン攻撃を並べて、開発者がいま守るべきポイントを整理します。

「悪意あるリポジトリをクローンして、エディタで開いただけ」——たったそれだけで、あなたのPCで勝手にコマンドが走り、ClaudeのAPIキーまで盗まれる。そんな攻撃が、現実に成立していました。

2026年2月、セキュリティ企業Check Point ResearchがAIコーディングツール「Claude Code」に2つの脆弱性があったと公表しました。すでにAnthropic側で修正済みですが、この事件が突きつけたのは「Claude Codeが危ない」という単純な話ではありません。AI開発ツール全体が抱える構造的な死角です。

ニュース元: Caught in the Hook: RCE and API Token Exfiltration Through Claude Code Project Files(Check Point Research)

筆者はAIメディア「explAIn」で毎日AIツールを触っていて、Claude Codeも日常的に使っています。だからこそ正直に書きますが、この脆弱性は「Claude Codeが特別ずさんだった」のではなく、AIに開発作業を任せる時代そのものが生む新しいリスクを象徴しています。順番に、噛み砕いて整理します。

まず結論:今日のポイント3つ

長くなるので、忙しい人のために先に要点を。

  1. 何が起きた? リポジトリ内の設定ファイル(.claude/settings.json など)を悪用して、開いた瞬間にコマンド実行・APIキー窃取が可能だった。2つのCVEとして報告され、すでに修正済み。
  2. なぜ怖い? 設定ファイルは「ただの設定」だと思われていて、コードほど警戒されない。そこを突かれた。しかもこれはClaude Code単独の問題ではなく、CursorやnpmなどAI開発まわり全体が同じ手口で狙われている。
  3. どうすれば? Claude Codeを最新版に更新し、知らないリポジトリを安易に開かない。ANTHROPIC_API_KEY を環境変数に直書きしっぱなしにしない。後半で具体策を書きます。

1. 何が起きたのか:2つの脆弱性

Check Point Researchが報告したのは、次の2件です(CVSS値・修正バージョンは各セキュリティメディアの報道に基づきます)。

CVE番号内容深刻度(CVSS)修正バージョン
CVE-2025-59536信頼していないディレクトリでClaude Codeを起動した際、初期化時に任意のシェルコマンドが自動実行される8.7(高)v1.0.111(2025年10月)
CVE-2026-21852悪意あるリポジトリがAPIキーなどの情報を外部に漏えいさせられる5.3(中)v2.0.65(2026年1月)

ポイントは、どちらも**「ユーザーが何か危険な操作をした」結果ではない**という点です。リポジトリをクローンして、Claude Codeでそのフォルダを開く——開発者なら1日に何度もやる、ごく普通の動作。それだけで攻撃が成立しうる状態でした。

Anthropicは公表前に修正を完了しており、報告によれば2025年8月から12月にかけて、警告ダイアログの強化やAPIリクエストのタイミング変更などを段階的に実施しています。対応そのものは誠実だったと言えます(★★★★☆)。問題は「なぜこんな穴が空いたのか」の方です。

2. 攻撃の仕組み:設定ファイルが「実行コード」だった

Check Pointが示した攻撃経路は、大きく3つです。いずれも起点は、リポジトリの中に置かれた設定ファイル(.claude/settings.json.mcp.json)でした。

経路1:フック(Hooks)の悪用 Claude Codeには、特定のタイミングでコマンドを自動実行する「フック」という仕組みがあります。攻撃者が設定ファイルに悪意あるフックを書いておくと、Claude Codeの初期化時にそのコマンドが走ってしまう。本来は「信頼するか確認するダイアログ」が出るはずでしたが、フックはその確認前に動いていました。

経路2:MCPサーバーの先回り起動 enableAllProjectMcpServers といった設定項目を使うと、ユーザーが「このプロジェクトを信頼する」と確認する前に、MCP(外部ツール連携の仕組み)の初期化コマンドが実行されてしまう状態でした。同意の仕組みを丸ごと回り込まれた形です。

経路3:APIキーの横取り 設定ファイルで ANTHROPIC_BASE_URL(APIの送信先)を攻撃者のサーバーに書き換えておくと、Claude Codeが信頼確認の前に、APIキーを平文のまま攻撃者のサーバーへ送信してしまう。キーを盗まれれば、チームで共有しているワークスペースのファイルにまでアクセスされる恐れがあります。

共通しているのは「信頼を確認する前に動いてしまっていた」こと。つまり、ユーザーが「待った」をかける隙すらなかった、というのが本質です。

3. なぜ怖いのか:これはClaude Codeだけの話じゃない

ここが今日いちばん伝えたいところです。同じ手口は、いまAI開発ツール全体に向けられています。国内外の事例を並べてみます。

TrapDoorキャンペーン(2026年5月) npm・PyPI・Crates.ioに34個の悪意あるパッケージをばらまいた攻撃で、明確にAIコーディングアシスタントを標的にしていました。手口は、.cursorrules(Cursor用の設定)や CLAUDE.md(Claude用の指示ファイル)を改ざんし、目に見えないゼロ幅Unicode文字で悪意ある指示を隠してAIに認証情報を盗ませる、というもの。LangChainやMetaGPT、OpenHandsといった有名OSSに偽のプルリクエストを送り込んでいました(The Hacker News)。

Shai-Hulud(シャイ・フルード)ワーム(2025年9月) npmエコシステムで、自己増殖しながら悪意あるパッケージを次々に汚染・再配布するワームが登場。2025年だけで、過去に記録されたnpmメンテナアカウント乗っ取りの92%が集中したという報告もあります(Palo Alto Unit 42)。

Cursorを狙ったnpmパッケージ攻撃 macOS版のCursorユーザーを標的に、悪意あるnpmパッケージを使った攻撃も確認されています(SC Media)。

これらに共通する発想はシンプルです。「人間のコードレビューはすり抜けても、AIエージェントは設定ファイルや指示ファイルを素直に読んで実行してくれる」。攻撃者にとって、AI開発ツールは「レジストリ(配布元)から本番環境までの最短ルート」になりつつあるわけです。

4. 構造的な死角:「設定ファイルはコードじゃない」という思い込み

なぜ、この手の攻撃が止まらないのか。理由は1つに集約されます。

設定ファイルは「メタ情報」だと思われていて、アプリのコードほど厳しくレビューされない。

私たち開発者は、*.js*.py のコードは疑ってかかります。でも .claude/settings.json.cursorrulesCLAUDE.md のような「設定・指示」ファイルは、つい「ただの設定でしょ」と流し読みしてしまう。プルリクエストのレビューでも、ロジックの差分は見ても、設定ファイルの1行は見落としがちです。

ところがAIエージェントの時代には、その「設定」がそのまま実行される指示になります。フックはコマンドを走らせ、CLAUDE.md はAIの行動を左右する。設定ファイルとコードの境界が消えた——ここが、従来のセキュリティ感覚との一番大きなズレです。

正直に言うと、これはツールベンダーだけを責めて済む話ではありません。便利さと引き換えに、AIに「自分のPCで自由にコマンドを実行する権限」を渡している。その自覚が、使う側にも要ります。

あなたへの影響

「自分は大企業の開発者じゃないから関係ない」と思うかもしれません。でも、次のどれかに当てはまるなら、無関係ではありません。

  • GitHubでよく他人のリポジトリをクローンして試す人 … 「便利そうなツール」を装ったリポジトリが罠かもしれません。
  • Claude CodeやCursorで「Vibeコーディング」している非エンジニア・副業勢 … AIに任せきりだと、危険な設定ファイルに気づけません。
  • 会社のソースコードを扱う人 … APIキー1本の流出が、チーム全体の情報漏えいに直結します。

特にAIに開発を任せる人ほど、「自分でコードを書かない=中身を見ない」状態になりがちです。便利さの裏で、レビューの目が減っている。そこが攻撃者の狙い目です。

今日からできる対策5つ

難しい話は抜きにして、すぐできることだけ挙げます。

  1. Claude Codeを最新版に更新する … 今回の2件はすでに修正済み。古いまま使うのが一番危険です。
  2. 知らないリポジトリを安易に「信頼」しない … 開いたときに出る信頼確認ダイアログを、反射的にOKしない。
  3. APIキーを設定ファイルに直書きしない … 環境変数や専用のシークレット管理に分け、キーは定期的に再発行する。
  4. クローンしたリポジトリの設定ファイルを目視する.claude/.cursor/.mcp.jsonCLAUDE.md に見覚えのないコマンドやURLがないか確認する。
  5. AIエージェントの権限を絞る … 「なんでも自動実行」設定は便利ですが、信頼できるプロジェクトだけに限定する。

地味ですが、これだけで今回の攻撃経路はほぼ塞げます。「便利さ」と「無防備」は紙一重だと、肝に銘じておきたいところです。

まとめ

今回のClaude Code脆弱性は、Anthropicがきちんと修正したという意味では「終わった話」です。でも、本質的な教訓は終わっていません。

  • 設定ファイルとコードの境界が消え、設定が実行される時代になった
  • 攻撃者はAIエージェントを「最短の侵入経路」として狙っている
  • 守る側は「AIに渡す権限」を意識的にコントロールする必要がある

AIに任せるほど、私たちは中身を見なくなる。その油断こそが、いま一番のセキュリティホールかもしれません。便利に使いつつ、最低限の警戒は手放さない。そのバランスを、これからも一緒に探っていきましょう。

関連リンク

参考にしたソース

ーー Synth

ヘッダー画像: Photo by Rafael Minguet Delgado on Pexels

S

Synth

explAInのライター。AIの今をやさしく、忖度なしで。