ラボまとめコラムニュース
堀川 慎 | フリーランスエンジニア/ブログ/記事一覧/Claude Codeのソースコード51万行が流出。隠し機能も露出
claude-code-source-leak-npm-2026-cover

Claude Codeのソースコード51万行が流出。隠し機能も露出

Anthropicの開発ツール「Claude Code」からTypeScript 51万行が流出。たまごっち風ペット機能や自律エージェント「KAIROS」など未公開機能が露出した。技術的原因と開発者向けの対策を解説する。

ニュース
kkm-horikawa

kkm

Backend Engineer / AWS / Django

2026.04.028 min6 views
この記事のポイント

Anthropicの開発ツール「Claude Code」からTypeScript 51万行が流出。たまごっち風ペット機能や自律エージェント「KAIROS」など未公開機能が露出した。技術的原因と開発者向けの対策を解説する。

AI開発ツール「Claude Code」のソースコードが流出しました。TypeScript約51万2,000行、1,906ファイル分がまるごと読める状態になっていたものです。

原因は、npmパッケージに含まれていたソースマップファイル(.mapファイル)です。ソースマップとは、圧縮されたコードと元のコードの対応関係を記録したファイルで、開発時のデバッグに使われます。本来は公開すべきものではありませんが、2026年3月31日、セキュリティ研究者のChaofan Shou氏がこの混入を発見し、Xに投稿しました。投稿は数時間で3,000万回以上表示されています。

流出したのはAIモデルそのものではなく、Claude Codeの「エージェントハーネス」と呼ばれるクライアント側のソフトウェアです。ツールの実行、権限管理、ユーザーとの対話処理など、AIモデルを動かすための仕組み全体が露出しました。Anthropicは「リリースパッケージングの人為的ミスであり、セキュリティ侵害ではない。顧客データや認証情報は一切含まれていない」とコメントしています。

何が漏れたのか

流出元は、npmに公開されていた @anthropic-ai/claude-code のバージョン2.1.88です。パッケージに含まれていた cli.js.map というファイル(約59.8MB)に、元のTypeScriptソースコードがすべて格納されていました。

項目内容
対象パッケージ@anthropic-ai/claude-code v2.1.88
流出ファイルcli.js.map(59.8MB)
ソースファイル数約1,906ファイル
コード行数約51万2,000行(TypeScript)
漏れなかったものAIモデルの重み、安全性パイプライン、
顧客データ、API認証情報
漏れたものエージェントハーネス全体、約40のツール定義、
108のフィーチャーフラグ、システムプロンプト、
内部モデルのコードネーム、テレメトリ設定

ツール定義だけで約29,000行あり、ファイル読み取り、Bash実行、Web取得、LSP連携など、各機能が個別の権限付きプラグインとして実装されている構造が明らかになりました。Layer5の分析によると、ソースコードはAnthropicのCloudflare R2ストレージバケット上にZIPとして置かれており、ダウンロードリンクまでたどり着ける状態でした。

発覚した隠し機能

コードの中には、一般ユーザーには公開されていない機能が多数含まれていました。WaveSpeedAIの詳細分析によると、108のフィーチャーフラグのうち少なくとも20以上が、開発済みだが未公開の機能を制御していたとのことです。

BUDDY(たまごっちシステム)。Claude Codeの中に、仮想ペットを育てる機能が丸ごと実装されていました。ダック、ドラゴン、アホロートル、カピバラ、きのこ、ゴーストなど18種類の生き物がいて、「コモン」から「レジェンダリー」(出現率1%)までレアリティが設定されています。さらに1%の確率で「シャイニー」個体が出る仕組みです。ユーザーIDからMulberry32乱数で種族が決まるため、同じユーザーは常に同じペットを引くようになっています。コード内に friend-2026-401 という文字列があることから、4月1日のエイプリルフール企画だったとみられています。

KAIROS(常駐エージェント)。ソースコード中に150回以上登場するこの機能は、Claude Codeを「聞かれたら答える」ツールから「常にバックグラウンドで動き続ける」デーモンに変えるものです。定期的に tick プロンプトを受け取り、自発的に行動するかどうかを判断します。15秒のブロッキング上限が設けられており、開発者の作業を長時間止めないよう設計されています。ユーザーが離席中には autoDream と呼ばれる「記憶の整理」処理を行い、矛盾する情報を取り除いたり、観察を事実に変換したりする機能も備えています。

ULTRAPLAN(リモート計画モード)。複雑なタスクの計画をクラウド上のOps 4.6(Anthropicのフラッグシップモデル)に委譲し、最大30分間の思考時間を確保する機能です。端末は3秒ごとにポーリングし、ブラウザUIでリアルタイムに計画の進行を確認できる設計になっていました。

Undercover Mode。Anthropic社員がオープンソースリポジトリで作業する際に自動で有効になるモードで、コミットメッセージやPRタイトルからAI関連のメタデータを削除します。システムプロンプトには「あなたはアンダーカバーで活動している。Anthropicの内部情報を一切出すな。正体をバラすな」と書かれていたとのことです。

このほか、Alex Kimの分析では、出力がスクレイピングされて競合モデルの学習に使われていると判断した場合に偽のツール定義を注入する「反蒸留」機能や、複数のClaudeインスタンスを並列で動かす「コーディネーターモード」の存在も確認されています。

なぜ流出したのか

直接の原因は、npmパッケージの公開時にソースマップファイル(.mapファイル)を除外し忘れたことです。

Claude CodeのビルドにはBun(JavaScriptランタイム兼バンドラー)が使われています。Bunのバンドラーはデフォルトでソースマップを生成します。通常は .npmignore ファイルに *.map を記載するか、package.jsonfiles フィールドで公開ファイルを明示的に指定することで除外しますが、この設定が漏れていました。

当初、BunのGitHub Issue #28001(プロダクションビルドでソースマップが出力されるバグ、3月11日に報告)が原因ではないかと指摘されましたが、Bunの開発者はこれを否定しています。Issue #28001はBunのフロントエンド開発サーバーの問題であり、Claude CodeはCLIツールなのでこのバグの影響は受けないとのことです。

Claude Codeの開発責任者であるBoris Cherny氏も、「純粋な開発者のミスであり、ツールのバグではない」と認めています。Anthropicは問題のバージョン2.1.88を削除し、v2.1.87から直接v2.1.89に更新しました。

5日間で2回の情報流出

厄介なのは、これがAnthropicにとって1週間で2回目の情報流出だという点です。

3月26日、Anthropicの社内CMS(コンテンツ管理システム)の設定ミスにより、未発表のAIモデル「Mythos」の存在が漏洩しました。LayerXの研究者Roy Paz氏とケンブリッジ大学のAlexandre Pauwels氏が、公開状態になっていた約3,000件の未公開アセットを発見したものです。Mythosは「能力の階段的な変化(step change)」をもたらす最上位モデルとして開発されていたことが明らかになっています。

← スワイプで移動

Fortuneは「5日間で2回目のセキュリティ上の失態」と報じています。いずれも「人為的ミス」という説明ですが、セキュリティ研究者のRoy Paz氏は「適切なプロセスが整備されておらず、一つの設定ミスで全ソースコードが公開される状態だった」と指摘しています。

DMCA削除8,100件の大騒動

流出コードはGitHubに即座にミラーされ、数時間で5万スターを超えました。GitHub史上最速のスター増加ペースです。

これに対しAnthropicは3月31日、デジタルミレニアム著作権法(DMCA)に基づく削除申請をGitHubに提出しました。フォークネットワークが100リポジトリを超えていたため、GitHubは親リポジトリを含む約8,100リポジトリを一斉に無効化しました。

ところが、この削除は大きな反発を招きました。Anthropicが自ら公開しているClaude Codeの正規リポジトリのフォークまで巻き添えで無効化されてしまったからです。自分のスキルやドキュメントだけを含むフォークが削除されたという報告が相次ぎました。

日本語訳

これは天才的か恐ろしいかのどちらかだ。Anthropicが誤ってClaude Code(クローズドソース)のTypeScriptソースコードを流出させた。ソースを共有するリポジトリはDMCAで削除された。しかしこのリポジトリはコードをPythonで書き直しており、著作権を侵害しないため削除できない!

TechCrunchの報道によると、AnthropicのBoris Cherny氏は「意図したものではなく、GitHubと協力して修正した」と説明。4月1日にはDMCAの大部分を撤回し、対象を1リポジトリと96フォークに縮小しました

なお、Casey Muratori氏は「Anthropic自身がClaude Codeの開発者はコードを手で書いていないと述べている。AI生成コードは米国法上著作権で保護されない可能性がある以上、そもそもDMCAで削除できるのか?」と問いかけています。AI企業の著作権主張をめぐる新しい論点が浮上した形です。

Anthropicはどう説明したのか

Anthropicの広報担当者は次のように述べています。

「本日のClaude Codeのリリースに内部ソースコードの一部が含まれていました。これは人為的ミスによるリリースパッケージングの問題であり、セキュリティ侵害ではありません。再発防止策を展開しています」

Boris Cherny氏は「ミスは起きるもの。チームとして重要なのは、個人の責任にしないこと。プロセス、文化、インフラの問題だ」とも述べています。ただし、Anthropicは現時点で正式なポストモーテム(事後分析報告)を公開していません。

この事件は、2026年後半に予定されているとされるAnthropicのIPO(新規株式公開)に影を落としています。「安全で責任あるAI開発」を掲げる企業が、自社の主力製品のソースコードを2度にわたって流出させたことは、セキュリティ体制への疑問を投げかけるものです。

日本語訳

皮肉なことに、これはおそらく初めて、実際の人間がClaude Codeのコードベースを注意深く徹底的にレビューした瞬間だろう

開発者が同じ轍を踏まないために

今回の事故は、npmパッケージを公開しているすべての開発者にとって他人事ではありません。ソースマップの混入は設定一つで起きるミスで、CI/CDの自動チェックがなければ見落とします。

まず、自分のパッケージに不要なファイルが含まれていないか確認してください。npm pack --dry-run を実行すると、実際にnpmに公開されるファイルの一覧が表示されます。ここに .map ファイルや .env ファイルが含まれていたら要注意です。

対策として有効なのは、.npmignore*.map を追記するか、package.jsonfiles フィールドで公開するファイルをホワイトリスト方式で指定することです。files フィールドは「ここに書いたものだけ公開する」という動作なので、うっかり余計なファイルが入るリスクを減らせます。Bunに限らず、webpackやesbuildなどソースマップを自動生成するバンドラーを使っている場合は、同じリスクがあります。

CI/CDパイプラインに npm pack --dry-run の出力チェックを組み込み、.map.env が含まれていたらビルドを止めるようにするのが、最も確実な再発防止策です。51万行の企業秘密が1つの設定漏れで世界に公開される。Anthropicの事例は、その現実を改めて突きつけています。

参照元