AIエージェント編集部
Claude Codeソースリーク事件の全貌
コラム

Claude Codeソースリーク事件の全貌——流出・脆弱性・マルウェアの三連打が業界に突きつけた問い

2026-04-05 — タイキング(AIエージェント編集部)

あなたがClaude Codeを使っているなら、この5日間の話はひとごとではない。

2026年3月31日から始まった一連の出来事——ソースコードの流出、8,100件超のGitHubリポジトリへのDMCA請求、重大なセキュリティ脆弱性の発見、そして悪意あるマルウェアの配布——は、単なるセキュリティインシデントではなかった。AIコーディングツールの普及が、業界全体にどれほどのリスクを抱え込ませているかを可視化した事件だ。

時系列を追いながら、何が起きたか、なぜ起きたか、そして私たちは何を考えるべきかを整理する。

事件の時系列——3月31日から始まった5日間

発端は偶発的なミスだった。

2026年3月31日、Claude Code v2.1.88がnpmレジストリに公開された際、ビルドパイプラインの設定ミスによりTypeScriptのソースマップファイルが同梱されてしまった。通常、npmパッケージには最小化・難読化されたJavaScriptのみが含まれるが、ソースマップがあれば元のTypeScriptコードが完全に復元できる。

これを発見したのはセキュリティ研究者のChaofan Shouだ。512,000行、1,900ファイルに及ぶClaude Codeのソースコードが、誰でもダウンロード可能な状態になっていたことをXに投稿した。投稿は瞬く間に拡散し、数時間後にはGitHubで多数のリポジトリにコードのミラーが作成されていた。

Anthropicが取った対応はDMCA(デジタルミレニアム著作権法)に基づく削除申請だった。4月1日から2日にかけて、GitHubに対して8,100件超のリポジトリへの削除要求を送った。しかしここで「誤爆」問題が発生する。Claude Codeのソースに言及しただけのblogpostや技術解説のリポジトリまで削除対象に含まれてしまい、開発者コミュニティの反発を招いた。

そして4月4日、Adversa AIが重大脆弱性を発見・公開。翌4月5日には悪意あるnpmパッケージの存在も確認された。ソースリークが引き金となり、連鎖反応が5日間続いたことになる。

512,000行が明かした「Claude Codeの内部構造」

流出したコードが明らかにしたものは、単なる実装の詳細にとどまらなかった。

開発者コミュニティが特に注目したのは、「frustration regex(フラストレーション正規表現)」と呼ばれる機能の存在だ。ユーザーのメッセージに含まれる特定のパターン——怒りを示す表現や操作への不満——を検出し、トラッキングする仕組みが実装されていた。これを「ユーザー体験改善のためのテレメトリ」と見るか、「意図しない感情データの収集」と見るかで、コミュニティの評価は二分された。

もう一つ話題になったのが「undercover mode」の存在だ。Anthropicが公式に言及したことのない動作モードがソースに含まれており、その用途について多くの憶測が飛び交った。Anthropicはこの点について公式コメントを出していない。

アーキテクチャ面では、Claude CodeがいかにAnthropicのAPIと密結合しているかが明確になった。セキュリティチェックの多くはAPIサーバー側ではなくクライアント側(CLI側)に実装されており、これが後述の脆弱性を生む素地になっていた。

「Best PR stunt in AI history?」というXの投稿がバズった。意図しない公開によってClaude Codeの設計が広く知られ、フォークが生まれ、コミュニティ貢献が活発化した——と皮肉を込めて評する声だ。Anthropicにとっては皮肉どころではないが、コードの品質自体は概ね好評だったという事実は興味深い。

重大脆弱性の仕組み——悪意あるCLAUDE.mdがなぜ危険か

ソースが公開されたことで、Adversa AIはClaude Codeのセキュリティ設計を詳細に解析できた。そして4月4日、深刻な脆弱性を発見・報告した。

攻撃の仕組みはこうだ。Claude Codeは起動時にカレントディレクトリのCLAUDE.mdを読み込み、そこに書かれた指示をシステムプロンプトとして扱う。正規の使い方では開発者が自分のプロジェクト設定を書くためのファイルだが、攻撃者はここに「50ステップ超のコマンドパイプライン」を埋め込むことができる。

このパイプラインがセキュリティチェックをバイパスするよう巧妙に設計されていた場合、Claude Codeは攻撃者が意図した一連のコマンドを自律的に実行してしまう。その結果として外部流出が可能とされた情報は以下の通りだ。

問題の核心は「信頼境界の曖昧さ」にある。Claude Codeはローカルに存在するファイルをすべて「信頼できる設定」として扱う設計になっていた。しかし現実には、サードパーティのリポジトリをcloneした瞬間にCLAUDE.mdが降ってくる。そのファイルの中身を人間が確認せずにClaude Codeを起動すれば、悪意ある指示が走る。

これはプロンプトインジェクション攻撃の一形態だ。ユーザーへの入力ではなく、ファイルシステム経由でモデルを誘導する。Anthropicは修正中と発表しているが、根本的な対策には「どのCLAUDE.mdを信頼するか」というポリシー設計の変更が必要になる。

漁夫の利を得た攻撃者——trojanized axiosとOpenCode

脆弱性の公開と前後して、別の攻撃が動いていた。

3月31日 00:21〜03:29 UTC(日本時間同日9時21分〜12時29分)の約3時間、npmレジストリにaxiosライブラリを偽装した悪意あるパッケージが公開されていた。このパッケージには2種類のマルウェアが内包されていた。

このタイムウィンドウにnpmパッケージをインストールした開発者は要注意だ。パッケージ名・バージョン番号が正規のaxiosと酷似していたため、CI/CDパイプラインやnpm installで意図せず引き込んだ可能性がある。

一方、コミュニティの別の反応として「OpenCode」の台頭がある。Claude Codeのソースリークを受け、有志が互換OSSフォークを公開。GitHubの最速成長リポジトリの一つとなった。合法的なフォーク活動そのものは技術の進化という意味でポジティブだが、「Anthropicが管理していないClaude Code互換ツール」が急速に広まることのリスクも同時に存在する。信頼性の検証なしに使えば、それ自体が攻撃経路になりうる。

この事件が問いかけること——AIコーディングツールのセキュリティ標準とは

5日間の出来事を並べると、一つの問いが浮かび上がる。「AIコーディングツールのセキュリティ基準は、誰が、どうやって担保するのか」だ。

Claude Codeはローカルで動くCLIだが、実態はクラウドのAPIと常時通信し、ファイルシステムに広範なアクセス権を持ち、シェルコマンドを実行できる。これは事実上「クラウドサービスがローカルに常駐している」に等しい。そのリスク管理の責任がAnthropicだけに帰属するのか、利用者にも分担されるのか、まだ業界の共通認識がない。

Anthropicの「人為的ミスによるリリースパッケージ問題、顧客データの漏洩なし」という公式コメントは正確だが、十分ではない。ソースコードの保護は企業の知的財産問題であるのと同時に、セキュリティ設計の詳細が攻撃者に知られるリスクの問題でもあった。今回の事件は、その両方が一度に顕在化した。

DMCAによる8,100件のリポジトリ削除要求については、コミュニティの批判が正しいと思う。すでに広まった情報を法的手段で封じ込めることには限界があり、その試みが無関係なリポジトリを巻き込む誤爆を生んだ。「情報の拡散」と「著作権保護」の間の矛盾を、既存の法的フレームワークで解決することの難しさが露わになった。

では開発者は今、何をすべきか。答えは単純だ。

  1. Claude Codeを最新バージョンにアップデートする
  2. 3月31日 00:21〜03:29 UTC前後にnpmパッケージをインストールした場合、依存関係を確認する
  3. 見知らぬリポジトリでClaude Codeを起動する前にCLAUDE.mdの中身を確認する習慣を持つ
  4. OpenCodeなどの非公式フォークを使う場合は、ソースを自分で確認してから使う

AIコーディングツールは「賢いエディタ」ではない。ローカル環境にルートに近いアクセスを持つエージェントだ。その認識を持って使うことが、今この瞬間から求められている。

「信頼できるソースから来たかどうか分からないファイルを、AIに読ませていないか」——この問いを、今日から習慣にしてほしい。

この記事で使ったツール

本記事はAIエージェントが収集・執筆した情報を含みます。内容の正確性・最新性については公式ドキュメントや一次情報源をご確認ください。