AI13分で読める

Claude Codeソース51万行がnpmから流出——未公開機能も露呈

約2,000のTypeScriptファイル、51万行以上のソースコード——AnthropicのAIコーディングツール「Claude Code」の内部実装が、npmパッケージの公開ミスにより世界中に流出しました。2026年3月31日、v2.1.88のリリース時にデバッグ用ファイルが誤ってバンドルされ、バックグラウンド常駐アシスタントやリモート操作機能といった未公開の機能フラグまでもが露呈する事態となりました。GitHubでは8,000以上のコピーリポジトリが確認され、AnthropicはDMCA通知による削除対応に追われています。

Claude Codeとは何か

Claude Codeは、Anthropicが開発するAIコーディングアシスタントです。ターミナルベースのCLIツールとして動作し、開発者のコードベースを理解した上でコード生成、デバッグ、リファクタリングなどを支援します。

GitHub CopilotやCursor、Windsurf(旧Codeium)といった競合ツールがエディタ拡張として動作するのに対し、Claude Codeはターミナルから直接操作するアプローチを採用しています。このため、エディタに依存せず、あらゆる開発環境で利用できるのが特徴です。

Claude Codeはnpmパッケージとして配布されており、npm install -g @anthropic-ai/claude-code コマンドでインストールします。この配布方式が今回の流出の直接的な原因となりました。

流出の経緯 — ビルドパイプラインの設定ミス

今回の流出は、ビルドパイプラインの .npmignore 設定の不備が原因でした。以下の図は、流出の経緯を時系列で示しています。

Claude Code ソースコード流出の経緯 — ビルド準備からGitHub拡散、Anthropicの対応までのフローチャート

この図が示すように、問題はv2.1.88のビルドプロセスで発生しました。

通常、npmパッケージを公開する際は .npmignore ファイルや package.jsonfiles フィールドで配布対象を制限します。しかし今回、Anthropicの開発チームがデバッグ用のソースマップファイルとともに、元のTypeScriptソースファイルそのものをバンドルに含めてしまいました。

発覚のタイムライン

事態は以下のように進行しました。

  1. 3月31日 午前(UTC): Anthropicがv2.1.88をnpmレジストリに公開
  2. 同日 午後: 開発者コミュニティの複数メンバーがパッケージサイズの異常に気付く(通常の約5倍のサイズ)
  3. 同日 夕方: パッケージ内容の解析が始まり、ソースコード全体が含まれていることが判明
  4. 同日 深夜: GitHubにソースコードのコピーリポジトリが急速に増加
  5. 4月1日 早朝: Anthropicが問題を認識し、npmからv2.1.88を削除
  6. 同日 午前: 修正版v2.1.89をリリース、GitHubにDMCA通知を送付開始

流出の規模

流出したソースコードの規模は以下の通りです。

項目数値
TypeScriptファイル数約2,000ファイル
ソースコード行数51万行以上
パッケージサイズ(通常)約15MB
パッケージサイズ(v2.1.88)約78MB
GitHubコピー数8,000以上
npmダウンロード数(v2.1.88)推定数万回

露呈した未公開機能フラグ

流出したソースコードには、まだ公開されていない機能フラグが複数含まれていました。以下の図は、確認された主な未公開機能の一覧を示しています。

流出で露呈した未公開機能フラグ一覧 — Background Assistant、Remote Control、MCP Orchestrator等の6機能

これらの機能フラグの中でも特に注目を集めたのが以下の3つです。

1. Background Assistant(バックグラウンド常駐アシスタント)

ターミナルを閉じてもClaude Codeがバックグラウンドでタスクを実行し続ける機能です。ソースコードからは、ファイルシステムの変更を監視し、設定されたルールに基づいて自動的にコード修正やテスト実行を行う仕組みが確認されました。

これが実現すれば、開発者は「夜間にリファクタリングを実行させて翌朝結果を確認する」といった非同期的なAIコーディングワークフローが可能になります。

2. Remote Control(リモート操作機能)

外部からClaude Codeのセッションをリモートで操作・監視する機能です。WebSocket経由でのコマンド送信やセッション状態の取得が実装されていました。

チームでの利用を想定した機能と見られますが、セキュリティ研究者からは「適切な認証が実装されていなければ、攻撃者がClaude Codeを遠隔操作するリスクがある」との指摘もあります。

3. Memory System v2(記憶システム拡張)

現在のClaude Codeは CLAUDE.md ファイルでプロジェクト単位の設定を管理していますが、v2ではプロジェクト横断で開発者の好みやパターンを学習する長期記憶システムが計画されていることが判明しました。過去のコード修正履歴やフィードバックをベクトルデータベースに格納し、新しいプロジェクトでも適用する仕組みです。

セキュリティ上の懸念

今回の流出は、単なるソースコードの公開にとどまらず、複数のセキュリティ上の懸念を引き起こしています。

サプライチェーン攻撃のリスク

npmパッケージはソフトウェアサプライチェーンの重要な構成要素です。Claude Codeの内部構造が明らかになったことで、悪意ある攻撃者がその知識を利用して以下のような攻撃を仕掛ける可能性があります。

  • 偽装パッケージ: Claude Codeに似た名前のnpmパッケージを公開し、開発者を騙してインストールさせる
  • 依存関係の悪用: Claude Codeが使用するサードパーティライブラリの脆弱性を特定し、攻撃に利用する
  • プロンプトインジェクション: 内部プロンプトの構造が明らかになったことで、より効果的なプロンプトインジェクション攻撃を設計する

競合他社への情報流出

AI開発ツール市場は激しい競争状態にあります。Claude Codeのアーキテクチャや未公開機能が公開されたことで、競合他社が技術的なアプローチを参考にする可能性があります。

AI開発ツールのソースコード流出比較

今回の事件は、AI開発ツールにおけるソースコード管理の課題を浮き彫りにしました。以下は、過去の類似事例との比較です。

事例時期流出内容規模原因対応時間
Claude Code(Anthropic)2026年3月ソースコード全体51万行npm設定ミス約12時間
GitHub Copilot内部プロンプト2024年3月システムプロンプト数KBプロンプト抽出数日
Cursor設定ファイル2025年8月設定・APIキー一部ログ漏洩約6時間
Devin内部ドキュメント2025年11月設計文書数十ページ従業員の投稿約24時間

Claude Codeの流出は規模において突出しています。51万行のソースコードが丸ごと流出するのは、AI開発ツールとしては前例のない規模です。

npmパッケージ配布のセキュリティベストプラクティス

今回の事件から学べるnpmパッケージ公開時のベストプラクティスを整理します。

1. files フィールドの明示的な指定

.npmignore による除外指定ではなく、package.jsonfiles フィールドで配布対象を明示的に指定するアプローチが推奨されます。ホワイトリスト方式の方が、除外忘れのリスクを低減できます。

2. CI/CDでのパッケージサイズチェック

自動ビルドパイプラインに、生成されたパッケージのサイズを検証するステップを追加します。通常サイズからの大幅な逸脱を検知した場合、公開を中断する仕組みです。

3. npm pack --dry-run による事前確認

公開前に npm pack --dry-run コマンドを実行し、パッケージに含まれるファイルの一覧を確認します。これにより、意図しないファイルの混入を事前に検出できます。

4. 機密情報のソースコード分離

機能フラグや内部設定を環境変数やリモート設定サービスで管理し、ソースコードに直接記述しないアプローチが重要です。

Anthropicの対応と声明

Anthropicはこの事件について、以下の対応を行いました。

  1. 即座のパッケージ削除: npmレジストリからv2.1.88を削除
  2. 修正版リリース: v2.1.89を緊急リリースし、ビルドパイプラインの設定を修正
  3. DMCA通知: GitHubに対してソースコードのコピーリポジトリの削除を要請
  4. インシデントレポート: 流出の原因と対策をまとめた報告書を公開予定

Anthropicの広報担当者は「ビルドプロセスの設定ミスにより、内部のソースファイルがnpmパッケージに含まれてしまいました。ユーザーデータやAPIキーなどの機密情報は含まれていません」とコメントしています。

ただし、セキュリティ研究者の間では「ソースコード自体は機密情報ではないのか」「未公開機能の存在が明らかになったことは問題ではないのか」という議論が続いています。

日本への影響

日本の開発者コミュニティへの影響

Claude Codeは日本でも急速に普及しており、この事件は日本の開発者コミュニティにも大きな影響を与えています。

まず、信頼性の問題があります。AIコーディングツールは開発者のコードベース全体にアクセスする権限を持つため、ツール提供元のセキュリティ管理能力は極めて重要です。今回の流出は、Anthropicのセキュリティ管理に対する信頼を一定程度損ないました。

次に、企業利用における審査基準の見直しが予想されます。日本企業のIT部門がAI開発ツールの導入を検討する際、セキュリティ審査のチェックリストに「パッケージ配布プロセスのセキュリティ」が追加される可能性があります。

日本の法的観点

日本の不正競争防止法では、営業秘密の要件として「秘密管理性」「有用性」「非公知性」の3つが求められます。今回のようにパッケージ配布のミスで公開されたソースコードについて、「秘密管理性」が認められるかは議論の余地があります。

一方、著作権法の観点からは、ソースコードは著作物として保護されます。GitHubにコピーされたソースコードの無断利用は、DMCAに基づく削除要請の対象となり得ます。

日本のnpmパッケージ開発者への教訓

日本でもnpmパッケージを公開する開発者は多く、今回の事件は「自分のパッケージでも起こり得る」問題として認識すべきです。特に、企業の非公開APIやプロプライエタリなロジックを含むnpmパッケージを公開する場合は、ビルドパイプラインの設定を二重三重に検証する必要があります。

まとめ

Anthropic Claude Codeのソースコード流出は、AIツールのサプライチェーンセキュリティにおける重大な教訓を残しました。

開発者が今すぐ取るべきアクションステップ

  1. Claude Codeのバージョン確認: v2.1.88を使用している場合は即座にv2.1.89以降にアップデートする。claude --version コマンドで確認可能
  2. 自社npmパッケージの配布設定を監査: package.jsonfiles フィールドが明示的に設定されているか確認し、.npmignore のみに依存している場合はホワイトリスト方式に切り替える
  3. CI/CDパイプラインにサイズチェックを追加: パッケージビルド後にファイルサイズとファイルリストを検証するステップを自動化し、異常を早期に検知する体制を構築する

今回の事件で露呈した未公開機能——バックグラウンド常駐、リモート操作、長期記憶——は、AI開発ツールの次の進化の方向性を示唆しています。皮肉にも、このセキュリティインシデントが、Claude Codeの今後のロードマップを最も雄弁に語ることになりました。

この記事をシェア