Claude CodeのソースコードがNPMレジストリのmapファイル経由で流出
(twitter.com/Fried_rice)- npmレジストリのソースマップ(map)ファイルを通じて、Claude Codeの全ソースコードが外部に露出し、内部構造と機能が公開された
- 流出したファイルには、システムプロンプト、テレメトリ、バイパスモード、Undercover Mode などの中核コンポーネントが含まれている
- 原因として、.npmignore設定の漏れとbunビルドツールのデフォルトのソースマップ生成機能が指摘されている
- コードにはバイアス防止や保護ルールがほとんどなく、最小限のトーン保護しか存在しないことが確認された
- コミュニティではこれを**「AIの自己オープンソース化」と皮肉り、セキュリティ管理の不注意が招いた大規模流出事例**として注目している
Claude Codeソースコード流出事件
- Claude Codeの全ソースコードが、npmレジストリのソースマップ(map)ファイルを通じて外部に露出していたことが確認された
- 公開されたリンクは
src.zip形式の圧縮ファイルで、コード構造と内部機能が含まれている - これにより、システムプロンプト、テレメトリ、バイパスモード、Undercover Mode などの内部コンポーネントが明らかになった
- 公開されたリンクは
- これはAnthropicが1年以内に経験した2度目の意図しない流出事故だと言及されている
- コミュニティでは、「誰かが *.map ファイルを .npmignore に追加しなかった」というビルド設定ミスが原因だと指摘
bunビルドツールがデフォルトでソースマップを生成するため、これを無効化しなかった点が問題として挙げられている
- 一部のユーザーはこの流出ファイルをClaudeモデルやバックエンドへのアクセスコードだと誤解したが、
- ソースマップはアプリ構造、関数、コードフローを示すだけで、モデルの重みやシステムアクセス権限は含まれない
- したがって実行可能なモデルではなく、リバースエンジニアリング、バグ探索、アーキテクチャ分析にのみ有用である
- 流出したコードには**「Undercover Mode」というサブシステム**が含まれており、
- これはClaudeが内部情報を誤って露出しないよう設計された機能である
- しかし人間の開発者の設定ミスにより、その機能自体が外部に公開されることになった
- コード分析者たちは、バイアス防止や保護対象クラスの処理ルールがまったくない点を指摘している
- 人種、性別、宗教などのセンシティブ属性に関するガードレール、キーワードフィルタ、分類器は存在しない
- 「Minimal tone protection」だけが存在し、バイアス緩和ポリシーは皆無であることが確認された
コミュニティの反応と議論
- コミュニティでは「リポジトリは自由を求めている」という冗談とともに、今回の件を**「オープンソース化のアイロニー」**と表現
- 「Claudeが自らを解放した」「AIが自分で自分をオープンソース化した」といった風刺的な反応が多数見られた
- 「世界最高水準のAIコーディングツールを作っておいて *.map を入れ忘れた」という批判的ユーモアも広がった
- 一部の利用者はセキュリティリスクを警告
- 出所不明の
r2.devリンクを無造作にダウンロードする行為を批判し、 - 「AI安全を語っていたコミュニティが未検証のzipファイルをクリックした」という自嘲的な反応も続いた
- 出所不明の
- 「これがClaudeの終わりの始まりなのか?」「意図的な流出なのかミスなのか?」といった疑問も提起された
- 「Anthropic社内の誰かにとって最悪の月曜日になっただろう」という反応も共有された
- コミュニティでは流出コードの活用可能性についての議論も続いている
- 「今や何ができるのか?」「これを基にClaude Codeを再構築できるのか?」といった質問が登場
- 「openclaude」という別名も生まれ、非公式なオープンソースプロジェクト化の可能性にも言及されている
追加情報
- 公開されたコードのうち最も大きいファイル5件は次の通り
cli/print.ts– 5,594行utils/messages.ts– 5,512行utils/sessionStorage.ts– 5,105行utils/hooks.ts– 5,022行screens/REPL.tsx– 5,005行
- 一部のユーザーはDeepWikiリンクを通じてコードレベルの分析資料を共有
https://deepwiki.com/instructkr/claude-codeでコード構造と機能を確認できる
- 全体として今回の件は、npm配布設定の単純なミスが大規模なAIコード流出につながり得ることを示す事例として評価されている
4件のコメント
OpenCode が十分に良いので、わざわざ何が必要なのか疑問ですね(笑)
/buddyが実際に動いているのを見ると……本物のような気もするし……エイプリルフールのイベントのような気もする……
https://github.com/kk-r/skillify-skill 思った以上に便利な内部コマンドが流出したものを、似たように動作するようオープンソースとして公開した方もいるようですね(笑)
Hacker Newsの意見
Anthropicがfeature flag経由で製品ロードマップを露出させてしまったことが最大の損失
とくに未公開の「assistant mode」(コードネーム kairos)が明らかになった
コードベースをClaudeに解析させると、隠し機能が大量に見つかる
たとえば Buddy System(たまごっち風のASCIIキャラクター)、Undercover mode(社員向けコミットから内部情報を除去する機能)などがある
関連コードのリンク
clappie.ai を参照
Telegram統合(CC Dispatch)、Crons(CC Tasks)、アニメーションASCII犬(CC Buddy)など、機能が重なっている
ユーザーがガチャ式でペットを引いて育てる形式で、レジェンド級のペットもいる
Twitterでのバイラルを狙って段階的に公開する予定だった
Anthropicがパッケージを実際には削除せず、「Unpublished」というメッセージだけでdeprecated扱いにしたのが興味深い
npm unpublishはパッケージを完全に削除するが、npm deprecateは残したまま警告だけを表示するおそらくソースマップのダウンロードを難しくしようという意図だと思われる
npmパッケージのリンク
こうした流出は今回が初めてではない
2025年2月にも似たことがあった
関連ブログ / HNスレッド
すべてのspinner verbsが露出した
関連コードのリンク
しかも直接置き換えることすら可能
今ではちょっとしたユーモアですらAIを疑われる時代だ
src/cli/print.tsはコードベースで最も複雑な関数3,167行、ネスト12段階、分岐点486、内部関数21個など
最低でも8〜10個のモジュールに分割すべきレベル
src/ink/termio/osc.tsの非同期処理も混乱しているwl-copy、xclip、xselを順番に実行しているが、asyncなのかどうかが曖昧人間基準のコードスメルは、LLMのコードでは別の意味を持つ可能性がある
LLMは人間とは異なるやり方でコードを書いており、新しい分析パラダイムが必要だ
人間流のコーディング規則を押し付けると、むしろ同じバグを繰り返すことになる
Vibe coding という新しい進化的アプローチが必要
しかもAnthropicは60日間動きのないバグを自動で閉じる
ユーザープロンプトの否定的感情を検出する正規表現がある
関連コード
特定の単語がログ対象になっている
AppleやBentleyのような企業も顧客だった
Claudeが変な回答をしたら、エンジニアがそれを見て改善してほしい
自分は難読化されたJS/TSコードはどうせ機械語ではないのだから、大したことではないと思う
むしろCLIをオープンソースで公開してほしい
最近もOAuthログインフローが誤ったURLを生成するバグがあった
いま実際に確認しているところ
難読化ではそこを隠せない
これを Malus やClaude Codeで回してオープンソース版を作ったらどうか、という冗談も出ている
もちろん本当にやれという意味ではない
FOSDEM発表リンク
コードをテキストに、さらにまたコードに翻訳してクリーンルーム実装のように見せるアイデア
皮肉なことに、LLMの回答自体がすでにオープンソースコードから派生している
Anthropicに検知されてアカウント停止される可能性がある
ANTI_DISTILLATION_CC はClaude Codeに組み込まれたモデル盗用防止機能
APIリクエストごとに
anti_distillation: ['fake_tools']を挿入し、サーバーが偽のツール定義をシステムプロンプトに追加する競合モデルがトラフィックをスクレイピングして学習した場合に、データが汚染されるよう設計されている
Qwen 27BモデルがOpus 4.6をもとに蒸留されたが、ツール使用エラーが発生した
関連ツイート
もしかするとSonnetやOpusにもこうしたデータ毒が入っているのだろうか?
Claude CodeがAxiosを使っていることが判明した
関連ツイート / HNスレッド
自動更新を止めるには環境変数に
export DISABLE_AUTOUPDATER=1を追加し、claude doctorでAuto-updates: disabled状態を確認すればよい