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

Claude Code 源碼外流:51萬行曝光

Anthropic 的 Claude Code npm 包因 Source Map 外流,約 51 萬行、1900+ 文件被還原。這次事件把 AI 工具的發布流程與調試資產風險,直接攤在台灣開發者眼前。

分享 LinkedIn
Claude Code 源碼外流:51萬行曝光

2026 年 3 月 31 日凌晨,Anthropic 的官方 npm 包,被安全研究員 Chaofan Shou 抓到可用的 Source Map。幾個小時內,Claude Code v2.1.88 的 TypeScript 源碼就被還原。規模大約 51 萬行,拆成 1900 多個文件。

講白了,這不是單純的「程式碼被看到」。這件事發生在 AI 編程工具上,才真的刺眼。它本來就是幫你讀碼、改碼、跑命令的工具,結果自己也被同樣方式拆開。

如果你平常只把 Source Map 當前端除錯工具,這次就該多看一眼。打包、發布、權限,只要一個環節鬆掉,注釋、目錄結構、內部模組名都可能一起外流。

這次到底外流了什麼

訂閱 AI 趨勢週報

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

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

外流的核心,不是模型權重,也不是使用者資料。重點是 Claude Code 客戶端的 TypeScript 源碼。對外界來說,這種資料很有價值,因為它直接揭露產品怎麼切能力邊界,怎麼呼叫本地工具,怎麼做權限判斷。

Claude Code 源碼外流:51萬行曝光

對安全研究員和競品團隊來說,這比行銷頁有用太多。你能看到真實的錯誤處理、命令呼叫、上下文拼接、日誌埋點,還有補丁邏輯。換句話說,工程團隊的取捨,幾乎都攤在那裡。

這類事件最麻煩的地方,在於它通常不是高難度入侵,而是發布細節失控。包裡多留了一個檔案,公開環境就多了一條路。

  • 外流版本:Claude Code v2.1.88
  • 源碼規模:約 51 萬行
  • 文件數量:1900+ 個
  • 入口:npm 包中的 Source Map

Source Map 原本是給前端除錯用。壓縮後的程式碼,可以靠它對回原始碼。問題是,很多團隊上線時沒有把它關乾淨。只要配置不嚴,瀏覽器、抓包工具,甚至公開包內容,都可能把原始碼拼回來。

說真的,這種事故很像把家門鑰匙放在門口鞋櫃。不是防盜門壞掉,是你自己忘了收好。

為什麼 Source Map 會變成入口

Source Map 的機制不複雜。前端或打包後的程式,會保留一個映射檔,把壓縮碼的位置對回原始碼。開發時很方便,排錯時也省事。可是一旦正式環境沒限制存取,它就會把很多不該公開的資訊一起攤開。

在 AI 工具裡,這個風險更大。因為這類產品常常同時包含本地命令執行、檔案讀寫、上下文管理、權限提示、遠端 API 呼叫。程式碼一旦完整還原,外界就更容易看出安全邊界怎麼畫。

這次也提醒大家一個老問題。很多團隊把「功能能跑」當成「可以上線」。但功能能跑,不代表正式制品可以留調試資產。測試能過,也不代表線上包裡能放足夠還原內部實作的線索。

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

這句話很老,但還是準。真正可怕的,不是某個檔案被看到。是團隊把發布鏈路的小疏忽,當成低風險小事,最後讓它在公開環境裡串成一條完整攻擊面。

你可能會想問,這跟一般前端洩漏有什麼差別?差很多。一般網頁可能只是幾個 bundle。AI 編程工具則牽涉本地執行、權限提示、命令列操作,資訊密度高得多。

跟其他洩漏比,這次哪裡特別

源碼外流不是新鮮事。瀏覽器擴充、手機 App、Electron 客戶端,都發生過類似問題。但 Claude Code 的特殊之處在於,它不是邊緣工具,而是直接面向開發者日常工作的 AI 編程產品。

Claude Code 源碼外流:51萬行曝光

它一旦暴露實作細節,影響的不只是品牌觀感,還有外界對安全設計的判斷。因為使用者會開始問:它怎麼處理本地檔案?怎麼限制命令執行?怎麼保護上下文?

再看規模,51 萬行、1900+ 文件,已經不是「看個大概」的等級。這種量體足以讓人做系統分析。你能看出模組切分、錯誤處理路徑、功能開關,甚至可以推測開發團隊的維護方式。

  • 一般網頁洩漏:多半只有少量 JS bundle
  • 桌面客戶端洩漏:常見於 Electron,能看到更多本地邏輯
  • AI 編程工具洩漏:會露出命令執行與權限流程
  • 這次規模:51 萬行、1900+ 文件,資訊密度很高

對競爭對手來說,這像一次低成本拆解。對安全團隊來說,這是活教材。只要分發包裡還留著可逆向的調試資訊,遲早有人會把它翻出來。

我覺得,這件事最刺眼的地方,在於它打到 AI 工具自己的痛點。產品本身在幫人處理程式碼,結果自己的工程包也沒守好。

開發團隊該學到什麼

第一個教訓很直接。發布前檢查清單,不能只看功能項。還要看調試資產、映射檔、符號表、內部日誌,有沒有一起被打包。很多事故不是程式寫錯,而是交付流程默認「沒人會看這些檔案」。

第二個教訓是最小權限。就算 Source Map 真的被看到,也不該讓它直接指向可下載的完整源碼倉庫。也不該把內部目錄結構暴露得太清楚。越是面向開發者的產品,越容易被誤以為「使用者懂技術」,但這不等於可以放鬆發布約束。

第三個教訓更現實。AI 工具正在變成高價值目標。它們接觸程式碼、憑證、終端、雲端 API。任何實作細節外流,都可能被拿去做逆向、審計,甚至拼出更完整的攻擊鏈。

  • 上線前關掉 production Source Map 公開存取
  • 把調試檔從正式制品剝離
  • 檢查 npm、PyPI、容器映像的分發內容
  • 對 AI 工具的本地執行權限做單獨審計

如果你在做類似產品,這次真的該重看 CI/CD 設定。很多公司花很多時間防模型越獄,卻忘了先把自己的發布包清乾淨。

如果你只是一般開發者,這件事也很有參考價值。你在專案裡開 Source Map、把 sourcemap 上傳到第三方服務、或把調試包丟到測試環境時,最好先假設它有一天會出現在公開視野。

這件事放在產業裡怎麼看

AI 編程工具這兩年很熱。CursorReplitGitHub CopilotChatGPT 都在搶開發者時間。大家比的不只是模型能力,還有工作流整合、命令列體驗、檔案操作、權限控制。

在這個市場裡,安全細節很容易被放到後面。產品團隊通常先追求能用,再追求好用,最後才回頭補安全。問題是,AI 工具碰到的是使用者的程式、金鑰、伺服器設定,順序一錯,代價就很大。

這次事件也會讓不少團隊重新檢查發佈規範。尤其是 Electron、前端打包、npm 套件、桌面客戶端這幾條線。只要有一條線沒有收緊,Source Map、內部註解、測試路徑都可能跟著出去。

結尾:先查你的發佈包

Claude Code 這次外流,表面上是資訊被看見。實際上,它是在提醒所有做軟體的人:發布工程本身就是安全的一部分。不是功能跑得動就好,還要看你把什麼一起送到了公開環境。

接下來最值得盯的,不是大家怎麼圍觀這 51 萬行碼,而是 Anthropic 會不會收緊 Source Map、調整分發策略、重新檢查 AI 客戶端的打包規範。對台灣開發者來說,這件事最實用的問題只有一個:你的線上包裡,還有多少不該被下載的東西?

如果你答不上來,今天就該查。