[TOOLS] 5 分鐘閱讀OraCore 編輯部

Claude Code 源碼外洩:npm 裡藏了什麼

Claude Code 的 npm sourcemap 疑似把完整源碼帶出來。這次不是入侵,而是發布流程出包,直接把 AI 編程 CLI 的細節攤開。

分享 LinkedIn
Claude Code 源碼外洩:npm 裡藏了什麼

2026 年 3 月 31 日,研究員 Chaofan Shou 在 X 發文說,他在 npm 裡翻到 Claude Code 的完整源碼。不是片段,也不是符號表。是 sourcemap 直接把原始碼帶出來。

說真的,這種失誤很尷尬。因為 Anthropic 做的是 AI 編程 CLI。這種產品最值錢的,往往就是命令流程、整合方式,還有和模型互動的細節。

如果你平常有碰 npm 的 sourcemap,你大概知道它不是什麼神秘東西。它本來是給除錯用的。問題是,很多團隊只把它當前端工具。結果一不小心,公開包就把核心邏輯一起送出去。

這次到底外洩了什麼

訂閱 AI 趨勢週報

每週精選模型發布、工具應用與深度分析,直送信箱。不定期,不騷擾。

不會寄垃圾信,隨時可取消。

這次的重點,不是有人硬闖系統。是公開發佈的套件,把不該公開的內容放進去了。也就是說,任何人只要下載公開包,就可能把原始碼還原出來。

Claude Code 源碼外洩:npm 裡藏了什麼

這種狀況最麻煩的地方,在於它很安靜。沒有警報聲。沒有登入失敗紀錄。沒有明顯攻擊痕跡。只有一個看似普通的 npm 套件,裡面藏著完整實作。

對 AI 編程工具來說,這很敏感。因為它通常不只是本地 CLI。它還會碰 API、Token、檔案系統、遙測、快取,甚至遠端執行流程。任何一層寫得太隨便,都可能被看穿。

  • 公開時間:2026-03-31
  • 曝光者:Chaofan Shou
  • 外洩位置:npm 公開套件
  • 外洩載體:sourcemap
  • 涉及產品:Claude Code

為什麼 sourcemap 會出事

Sourcemap 的本意很單純。它讓壓縮後的程式碼,能對回原始碼。這樣工程師在出 bug 時,才知道問題到底在哪一行。

但問題也在這裡。只要發佈流程沒管好,sourcemap 就會變成公開入口。它不只會暴露函式名稱,還可能把目錄結構、註解、流程分支,一起吐出來。

這次會被放大討論,跟產品性質也有關。Claude Code 是給開發者用的。使用者本來就對技術細節很敏感。大家自然會問:連包內容都沒檢查好,發布流程到底有多鬆?

“Security is a process, not a product.” — Bruce Schneier

Bruce Schneier 這句話很適合拿來套這次事件。外洩通常不是單點錯誤。它常常是打包、審查、簽發、回滾,整條鏈都沒卡住。

還有一個現實問題。npm 套件會被快取、鏡像、轉發。你就算把上游刪掉,也不代表副本會立刻消失。這也是公開發佈失誤最難收拾的地方。

跟其他外洩案比,差在哪

很多軟體外洩,發生在內部倉庫,或是測試環境。這次比較麻煩。因為它出現在公開分發渠道。任何人都能抓。

Claude Code 源碼外洩:npm 裡藏了什麼

公開套件一旦出包,擴散速度很快。下載者會把它拉進自己的 cache。鏡像站會再複製一次。CI 也可能順手把它當依賴抓下來。這種傳播方式,很難靠單次撤包解決。

你可以把幾種場景放一起看:

  • npm 公開套件外洩:擴散最快,回收最慢
  • GitHub 私有倉庫誤公開:可追查,但可能已被抓走
  • 內部日誌外洩:影響面可能較小,但清理成本高
  • CI/CD 產物外洩:常跟自動發佈綁在一起,容易重複發生

講白了,真正該怕的不是「程式碼被看到」。而是「為什麼它會被看到」。如果一個 CLI 的 sourcemap 就能還原核心流程,代表發布門禁有洞。

這也會讓人開始懷疑,團隊到底有沒有做包內容審查。是只看版本號?還是連最終制品都逐檔確認?差很多。

對 Anthropic 和開發者的意思

Anthropic 來說,直接損失不是名聲,而是信任。因為賣 AI 編程工具的公司,最怕工程控管被質疑。

開發者也會跟著想。今天是 Claude Code。明天可能是別家的 CLI、插件、代理層,或本地編排工具。只要走公開套件分發,就有機會踩到同樣的坑。

所以這件事的教訓很實際。發佈前要檢查 sourcemap。要清掉不必要的映射。要把敏感邏輯從公開制品裡拆出去。這些都不是新招,但很多團隊就是會漏。

  • 檢查 npm 套件內容,確認沒有多餘檔案
  • 限制 production 環境的 sourcemap 發佈
  • 把來源碼和發佈制品分開審查
  • 重查 CLI 的鑑權、遙測、遠端呼叫路徑

如果你在管 Node.js、Rust、前端,或發佈流水線,這次很適合做一次自查。尤其是會自動產生 map 檔、bundle 檔、debug artifact 的專案,最容易在最後一步出包。

我也建議順手看一下官方文件。像 npm 官方文件Anthropic 文件,還有你們自己的 release checklist。很多事故,不是技術不夠,是流程少一步。

這件事放回產業脈絡看

現在 AI 工具很多都走 CLI、SDK、Agent、插件這條路。原因很簡單。開發者要的是可嵌入、可自動化、可串接。這種產品一旦進入工作流,發布品質就會直接影響信任。

而且 AI 工具跟一般 app 不一樣。它常常會處理 Token、上下文、檔案、repo、shell 指令。只要一個環節有資訊外洩,後果通常比一般工具更麻煩。

從產業面看,這次也提醒大家一件事。很多公司很會講模型能力,卻不一定把供應鏈安全做好。模型再強,發佈流程爛掉,照樣會翻車。

再看競品,像 Claude Code 這類 CLI,和其他 AI coding 工具相比,大家比的不只是功能。還有包裝、更新、簽章、審查,這些都會影響信任感。你要是連 sourcemap 都管不好,使用者很難放心把 repo 交給你。

最後看什麼

這種事故最能看出一家公司的工程成熟度。真正重要的,不是發一篇「我們在調查」的聲明。是能不能快速講清楚影響範圍,撤下有問題版本,輪換可能暴露的密鑰,再把流程補起來。

我會盯兩件事。第一,Anthropic 會不會公開說明受影響版本。第二,他們會不會更新 npm 發佈流程,讓 sourcemap 和公開制品分開管。這兩件事都很具體,也最能看出態度。

我的判斷很直接。這不會讓 Claude Code 直接失去市場。可是它會讓更多團隊開始檢查自己的 release pipeline。接下來最實際的問題是:你們家的 package,真的有把不該公開的東西擋住嗎?