[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"article-claude-code-leak-exposes-512k-lines-npm-zh":3,"tags-claude-code-leak-exposes-512k-lines-npm-zh":33,"related-lang-claude-code-leak-exposes-512k-lines-npm-zh":47,"related-posts-claude-code-leak-exposes-512k-lines-npm-zh":51,"series-tools-cff44ea5-e67c-46bf-917a-b147287a0515":88},{"id":4,"title":5,"content":6,"summary":7,"source":8,"source_url":9,"author":10,"image_url":11,"keywords":12,"language":21,"translated_content":10,"views":22,"is_premium":23,"created_at":24,"updated_at":24,"cover_image":11,"published_at":25,"rewrite_status":26,"rewrite_error":10,"rewritten_from_id":27,"slug":28,"category":29,"related_article_id":30,"status":31,"google_indexed_at":32,"x_posted_at":10,"tweet_text":10,"title_rewritten_at":10,"title_original":10,"key_takeaways":10,"topic_cluster_id":10,"embedding":10,"is_canonical_seed":23},"cff44ea5-e67c-46bf-917a-b147287a0515","Claude Code npm 外洩 51.2 萬行","\u003Cp>Anthropic 這次不是被駭。是打包失誤。\u003Ca href=\"https:\u002F\u002Fwww.anthropic.com\u002F\" target=\"_blank\" rel=\"noopener\">Anthropic\u003C\u002Fa> 的 \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002Fclaude-code\" target=\"_blank\" rel=\"noopener\">Claude Code\u003C\u002Fa> 版本 2.1.88，短暫把原始碼丟到 npm。外洩規模超過 51.2 萬行，還牽出近 2,000 個 TypeScript 檔案。\u003C\u002Fp>\u003Cp>講白了，這不是小洞。這是把內部藍圖公開給陌生人看。就算官方後來下架，鏡像站和討論串早就把內容傳開了。\u003C\u002Fp>\u003Cp>這種事會讓開發者很有感。因為你平常用來 debug 的 source map，今天可能直接把整包內部邏輯送出去。說真的，這東西蠻猛的，也蠻雷的。\u003C\u002Fp>\u003Ch2>到底外洩了什麼\u003C\u002Fh2>\u003Cp>這次出包的核心，是 npm 套件版本 2.1.88 帶了 source map。Source map 在 JavaScript 和 TypeScript 很常見。它能把編譯後的程式，對回原始碼，方便除錯。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775092577214-teca.png\" alt=\"Claude Code npm 外洩 51.2 萬行\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>問題是，這東西一旦帶著原始碼一起發佈，就很危險。因為它不只是除錯工具，也可能變成洩密工具。尤其是 AI 軟體，裡面常有 a\u003Ca href=\"\u002Fnews\u002Fjiuwenclaw-self-evolving-ai-agent-zh\">gent\u003C\u002Fa> 邏輯、工具呼叫、記憶模組，這些都很值錢。\u003C\u002Fp>\u003Cp>這次曝光的不是幾個函式而已。它牽出一整個大型 codebase。外部的人可以直接看 \u003Ca href=\"\u002Fnews\u002Fopenclaw-bug-websites-hijack-ai-agents-zh\">Cla\u003C\u002Fa>ude Code 怎麼做 orchestrate，怎麼處理工具，怎麼跟 IDE 整合。\u003C\u002Fp>\u003Cul>\u003Cli>外洩版本：2.1.88\u003C\u002Fli>\u003Cli>檔案數量：近 2,000 個 TypeScript 檔案\u003C\u002Fli>\u003Cli>程式碼規模：超過 512,000 行\u003C\u002Fli>\u003Cli>處置結果：版本已從 npm 下架\u003C\u002Fli>\u003C\u002Ful>\u003Cp>Anthropic 後來說，這是人為失誤，不是資料庫被打穿。也沒有客戶資料或憑證外流。這句話很重要，但不代表事件小。\u003C\u002Fp>\u003Cp>因為對攻擊者來說，原始碼外洩本身就很有價值。它能告訴你內部設計、邊界處理、錯誤流程，還有哪裡可能塞 prompt injection。\u003C\u002Fp>\u003Ch2>研究者為什麼第一時間盯上\u003C\u002Fh2>\u003Cp>第一個公開點出這件事的人，是安全研究員 \u003Ca href=\"https:\u002F\u002Fx.com\u002FrealChaofanShou\" target=\"_blank\" rel=\"noopener\">Chaofan Shou\u003C\u002Fa>。他在 X 上直接說，\u003Ca href=\"\u002Fnews\u002Fopenclaw-update-guide-safe-upgrades-2026-zh\">Cla\u003C\u002Fa>ude Code 的 source code 是透過 npm 的 map file 外洩。\u003C\u002Fp>\u003Cp>這種爆料會快速擴散，不是因為標題聳動。是因為它很好驗證。只要去看套件內容，就知道有沒有問題。這種透明度，對研究者來說反而省事。\u003C\u002Fp>\u003Cp>另一個原因是，AI 工具已經進入日常開發流程。它不再只是聊天機器人。它會讀檔、改檔、跑 shell、呼叫 API。這代表外洩的不只是程式碼，而是整套代理人行為模型。\u003C\u002Fp>\u003Cblockquote>“Claude code source code has been leaked via a map file in their npm registry!” — Chaofan Shou\u003C\u002Fblockquote>\u003Cp>外洩內容也讓人看到 Claude Code 的一些內部設計。像是 memory 系統，用來繞過固定 context 長度。還有 tools layer，負責檔案與 shell 操作。再來是 query engine，處理 API 編排。\u003C\u002Fp>\u003Cp>你可能會想問，這有多嚴重。答案是，這會讓研究者和攻擊者都更容易測試它的弱點。差別只在於，前者想看風險，後者想找洞。\u003C\u002Fp>\u003Ch2>這次數字為什麼很刺眼\u003C\u002Fh2>\u003Cp>51.2 萬行不是一般小工具的等級。這代表它不是單一腳本，而是一個有分層、有模組、有行為控制的大系統。從這種規模，你能反推出很多內部架構。\u003C\u002Fp>\n\u003Cfigure class=\"my-6\">\u003Cimg src=\"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775092591918-g9ss.png\" alt=\"Claude Code npm 外洩 51.2 萬行\" class=\"rounded-xl w-full\" loading=\"lazy\" \u002F>\u003C\u002Ffigure>\n\u003Cp>更麻煩的是，外洩的還不只是功能碼。報導指出，裡面還出現一些內部模式名稱，像背景模式 KAIROS、夢境模式 dream，還有協助開源貢獻的 undercover mode。這些名字本身就透露產品設計方向。\u003C\u002Fp>\u003Cp>這裡有幾個重點比較：\u003C\u002Fp>\u003Cul>\u003Cli>Anthropic 說是打包失誤，但外界拿到的是完整 source map。\u003C\u002Fli>\u003Cli>npm 版本已下架，但公開鏡像仍可能保留副本。\u003C\u002Fli>\u003Cli>研究者看到的是架構，攻擊者看到的是測試藍圖。\u003C\u002Fli>\u003Cli>內部模組名稱外流後，typosquatting 風險會上升。\u003C\u002Fli>\u003Cli>AI agent 的 memory 與 tool call 流程，也更容易被逆向。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>這種外洩還有一個現實問題。它會幫助人做 fuzzing。因為你知道函式怎麼串，哪裡進 context，哪裡做 compaction，就能設計更準的 payload。\u003C\u002Fp>\u003Cp>講白了，這比亂打 jailbreak 提示詞有效太多。因為你不是瞎猜。你是拿著地圖進場。\u003C\u002Fp>\u003Ch2>供應鏈風險沒有只停在原始碼\u003C\u002Fh2>\u003Cp>這件事更煩的地方，在於它不是單一事故。文章提到，3 月 31 日 00:21 到 03:29 UTC 之間安裝或更新 Claude Code 的使用者，可能還碰到另一個 trojanized HTTP client。\u003C\u002Fp>\u003Cp>那代表有兩條風險線同時在跑。第一條是 source code 外洩。第二條是依賴套件可能被污染。這兩件事放在一起，對 DevOps 團隊很不友善。\u003C\u002Fp>\u003Cp>如果你的團隊在那段時間有拉 npm 套件，做法不要花俏。先回退到已知安全版本。再查 lockfile。接著檢查 CI\u002FCD 產物。最後才是看有沒有憑證需要輪替。\u003C\u002Fp>\u003Cp>這裡也能看出 AI 軟體的供應鏈問題。它常把很多層東西包在一起。CLI、agent、插件、依賴、build artifact，任何一層出事，都可能拖累整個流程。\u003C\u002Fp>\u003Cp>我覺得最麻煩的不是這次漏了幾行碼。是外界會開始問：你們的 release 流程，到底有沒有真的檢查 source map、private module、以及 publish 設定。\u003C\u002Fp>\u003Ch2>開發團隊現在該做什麼\u003C\u002Fh2>\u003Cp>如果你們團隊有用 Claude Code，這件事不要只當新聞看。它其實是在提醒你，release hygiene 不能只管版本號。build artifact、source map、內部套件名稱，都要一起管。\u003C\u002Fp>\u003Cp>尤其是 npm 生態。很多團隊會在 CI 裡自動安裝套件。這很方便，也很危險。因為你只要少看一個 lockfile，就可能把不該進來的東西帶進去。\u003C\u002Fp>\u003Cp>下面這些動作很實際，也很值得立刻做：\u003C\u002Fp>\u003Cul>\u003Cli>檢查最近是否安裝過 \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002F\" target=\"_blank\" rel=\"noopener\">npm\u003C\u002Fa> 上的 AI 相關套件。\u003C\u002Fli>\u003Cli>若碰到可疑時間窗，先輪替密鑰。\u003C\u002Fli>\u003Cli>把 source map 從 production 發佈流程移除。\u003C\u002Fli>\u003Cli>在 allowlist 擋掉可疑的套件變體。\u003C\u002Fli>\u003Cli>檢查 CI log，有沒有洩露內部路徑。\u003C\u002Fli>\u003C\u002Ful>\u003Cp>如果你在做 AI agent，這次事件還有另一層提醒。內部 prompt、工具編排、記憶策略，現在都算安全邊界的一部分。它們不是純產品細節而已。\u003C\u002Fp>\u003Cp>一旦這些內容外流，別人就能更準地研究你的控制流。這對防守方很傷，因為你失去的是結構資訊，不只是單一函式。\u003C\u002Fp>\u003Ch2>這件事放在產業脈絡裡看\u003C\u002Fh2>\u003Cp>AI coding assistant 這幾年都在往更深的工作流滲透。從補字，到改檔，再到跑測試，甚至幫你操作 shell。功能越多，暴露面就越大。\u003C\u002Fp>\u003Cp>這也解釋了為什麼 source map、private package、internal prompt 會變成安全議題。以前這些東西多半是工程細節。現在它們直接影響產品安全。\u003C\u002Fp>\u003Cp>另外，Anthropic 這次不是第一次碰到資料外洩相關事件。當同一家公司的 release 管理連續出包，業界自然會開始看它的內控流程，而不是只看單次失誤。\u003C\u002Fp>\u003Cp>從競品角度看，\u003Ca href=\"https:\u002F\u002Fopenai.com\u002F\" target=\"_blank\" rel=\"noopener\">OpenAI\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fwww.cursor.com\u002F\" target=\"_blank\" rel=\"noopener\">Cursor\u003C\u002Fa>、\u003Ca href=\"https:\u002F\u002Fcodeium.com\u002F\" target=\"_blank\" rel=\"noopener\">Codeium\u003C\u002Fa> 這類工具，現在都在比速度，也在比供應鏈管理。誰的發佈流程更嚴，誰就少一點翻車機會。\u003C\u002Fp>\u003Cp>我覺得接下來 6 到 12 個月，AI 工具的安全審查會更像傳統軟體供應鏈審查。source map、SBOM、簽章、artifact provenance，這些詞會越來越常出現在產品會議裡。\u003C\u002Fp>\u003Ch2>接下來會怎麼走\u003C\u002Fh2>\u003Cp>這次事件最實際的結論很簡單。AI 工具的風險，不只在模型本身。也在打包、發佈、依賴和權限管理。\u003C\u002Fp>\u003Cp>如果你是開發者，現在就該問自己一個問題：你的工具鏈裡，有多少東西其實不該公開？答案可能比你想像中多。\u003C\u002Fp>\u003Cp>我會給一個直接預測：接下來 1 年，更多 AI 工具會開始預設關閉 source map，或把它們移到內部 artifact store。原因很簡單。大家終於知道，debug 便利性和外洩風險，常常是一體兩面。\u003C\u002Fp>","Anthropic 因打包失誤讓 Claude Code 原始碼短暫外洩到 npm，超過 51.2 萬行、近 2,000 個 TypeScript 檔案曝光，也把 AI 軟體供應鏈風險攤在陽光下。","thehackernews.com","https:\u002F\u002Fthehackernews.com\u002F2026\u002F04\u002Fclaude-code-tleaked-via-npm-packaging.html",null,"https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1775092577214-teca.png",[13,14,15,16,17,18,19,20],"Claude Code","Anthropic","npm","source map","供應鏈安全","AI coding assistant","TypeScript","原始碼外洩","zh",0,false,"2026-04-02T01:15:41.670331+00:00","2026-04-02T01:15:41.103+00:00","done","cf1d355d-1193-44c6-adeb-2fb035416312","claude-code-leak-exposes-512k-lines-npm-zh","tools","717e4d27-65a9-4a77-afa2-6e8713bfb2c9","published","2026-04-09T09:00:52.784+00:00",[34,36,37,39,40,42,44,46],{"name":19,"slug":35},"typescript",{"name":15,"slug":15},{"name":18,"slug":38},"ai-coding-assistant",{"name":17,"slug":17},{"name":13,"slug":41},"claude-code",{"name":14,"slug":43},"anthropic",{"name":16,"slug":45},"source-map",{"name":20,"slug":20},{"id":30,"slug":48,"title":49,"language":50},"claude-code-leak-exposes-512k-lines-npm-en","Claude Code Leak Exposes 512K Lines on npm","en",[52,58,64,70,76,82],{"id":53,"slug":54,"title":55,"cover_image":56,"image_url":56,"created_at":57,"category":29},"d058a76f-6548-4135-8970-f3a97f255446","why-gemini-api-pricing-is-cheaper-than-it-looks-zh","為什麼 Gemini API 定價其實比看起來更便宜","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778869845081-j4m7.png","2026-05-15T18:30:25.797639+00:00",{"id":59,"slug":60,"title":61,"cover_image":62,"image_url":62,"created_at":63,"category":29},"68e4be16-dc38-4524-a6ea-5ebe22a6c4fb","why-vidhub-huiyuan-hutong-bushi-quan-shebei-tongyong-zh","為什麼 VidHub 會員互通不是「買一次全設備通用」","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778789450987-advz.png","2026-05-14T20:10:24.048988+00:00",{"id":65,"slug":66,"title":67,"cover_image":68,"image_url":68,"created_at":69,"category":29},"7a1e174f-746b-4e82-a0e3-b2475ab39747","why-buns-zig-to-rust-experiment-is-right-zh","為什麼 Bun 的 Zig-to-Rust 實驗是對的","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778767879127-5dna.png","2026-05-14T14:10:26.886397+00:00",{"id":71,"slug":72,"title":73,"cover_image":74,"image_url":74,"created_at":75,"category":29},"e742fc73-5a65-4db3-ad17-88c99262ceb7","why-openai-api-pricing-is-product-strategy-zh","為什麼 OpenAI API 定價是產品策略，不是註腳","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778749859485-chvz.png","2026-05-14T09:10:26.003818+00:00",{"id":77,"slug":78,"title":79,"cover_image":80,"image_url":80,"created_at":81,"category":29},"c757c5d8-eda9-45dc-9020-4b002f4d6237","why-claude-code-prompt-design-beats-ide-copilots-zh","為什麼 Claude Code 的提示設計贏過 IDE Copilot","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778742645084-dao9.png","2026-05-14T07:10:29.371901+00:00",{"id":83,"slug":84,"title":85,"cover_image":86,"image_url":86,"created_at":87,"category":29},"4adef3ab-9f07-4970-91cf-77b8b581b348","why-databricks-model-serving-is-right-default-zh","為什麼 Databricks Model Serving 是生產推論的正確預設","https:\u002F\u002Fxxdpdyhzhpamafnrdkyq.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Fcovers\u002Finline-1778692245329-a2wt.png","2026-05-13T17:10:30.659153+00:00",[89,94,99,104,109,114,119,124,129,134],{"id":90,"slug":91,"title":92,"created_at":93},"de769291-4574-4c46-a76d-772bd99e6ec9","googles-biggest-gemini-launches-in-2026-zh","Google 2026 最大 Gemini 盤點","2026-03-26T07:26:39.21072+00:00",{"id":95,"slug":96,"title":97,"created_at":98},"855cd52f-6fab-46cc-a7c1-42195e8a0de4","surepath-real-time-mcp-policy-controls-zh","SurePath 推出即時 MCP 政策控管","2026-03-26T07:57:40.77233+00:00",{"id":100,"slug":101,"title":102,"created_at":103},"9b19ab54-edef-4dbd-9ce4-a51e4bae4ebb","mcp-in-2026-the-ai-tool-layer-teams-use-zh","2026 年 MCP：團隊真的在用的 AI 工具層","2026-03-26T08:01:46.589694+00:00",{"id":105,"slug":106,"title":107,"created_at":108},"af9c46c3-7a28-410b-9f04-32b3de30a68c","prompting-in-2026-what-actually-works-zh","2026 提示工程，真正有用的是什麼","2026-03-26T08:08:12.453028+00:00",{"id":110,"slug":111,"title":112,"created_at":113},"05553086-6ed0-4758-81fd-6cab24b575e0","garry-tan-open-sources-claude-code-toolkit-zh","Garry Tan 開源 Claude Code 工具包","2026-03-26T08:26:20.068737+00:00",{"id":115,"slug":116,"title":117,"created_at":118},"042a73a2-18a2-433d-9e8f-9802b9559aac","github-ai-projects-to-watch-in-2026-zh","2026 必看 20 個 GitHub AI 專案","2026-03-26T08:28:09.619964+00:00",{"id":120,"slug":121,"title":122,"created_at":123},"a5f94120-ac0d-4483-9a8b-63590071ac6a","claude-code-vs-cursor-2026-zh","Claude Code 與 Cursor 深度對比：202…","2026-03-26T13:27:14.279193+00:00",{"id":125,"slug":126,"title":127,"created_at":128},"0975afa1-e0c7-4130-a20d-d890eaed995e","practical-github-guide-learning-ml-2026-zh","2026 機器學習入門 GitHub 實用指南","2026-03-27T01:16:49.712576+00:00",{"id":130,"slug":131,"title":132,"created_at":133},"bfdb467a-290f-4a80-b3a9-6f081afb6dff","aiml-2026-student-ai-ml-lab-repo-review-zh","AIML-2026：像課綱的學生實驗 Repo","2026-03-27T01:21:51.467798+00:00",{"id":135,"slug":136,"title":137,"created_at":138},"80cabc3e-09fc-4ff5-8f07-b8d68f5ae545","ai-trending-github-repos-and-research-feeds-zh","AI Trending：把 AI 資源收成一張表","2026-03-27T01:31:35.262183+00:00"]