51万行源码裸奔背后:Claude Code泄露,不是漏洞,是纪律问题
一条X帖子把Anthropic推上风口,安全研究员Chaofan Shou甩出链接,直指Claude Code的npm包里藏着完整source map,顺手还能下载到压缩源码。不到24小时,围观量冲到2800万。51.2万行TypeScript、1900个文件,就这么摊在公网。
这不是电影桥段,是一次标准的发布事故。更讽刺的是,撕开口子的不是竞争对手,而是一位在安全圈有击杀清单的华人辍学博士。

从Bug赏金到大厂翻车
Chaofan Shou的履历很硬。本科UC Santa Barbara,后来在UC Berkeley读博,Sky Computing Lab,导师是程序分析领域的Koushik Sen。读到一半退学,他自己写得很轻松,but I dropped out。
轻松归轻松,技术不轻。他在个人主页列了一个Things I Broke,30多条漏洞记录。Bug Bounty累计收入190万美元。2021年挖穿CVS Pharmacy内网入口,2023年组合漏洞理论上能接管整个平台账户,2024年开始扫AI工具和区块链基础设施。Devin.ai、Etherscan、FTX、Polygon,都在名单里。
后来他创办FuzzLand,主打基于模糊测试和AI的智能合约安全分析,帮助追回超3000万美元链上资产,管理和保护的资产规模超过50亿美元。2024年2月完成300万美元种子轮融资,2025年1月被Solayer收购。
你会发现一个细节,他连自己量化交易亏了92%都写在主页上。安全领域几乎无敌,投资领域反向天才,这种反差,反而真实。
问题不在他。问题在Anthropic。
技术问题很低级,就是没删
这次泄露的源头,说白了就一句话,发布npm包时没剔除source map文件cli.js.map,体积59.8MB。
source map本来是给开发者调试用的,它能把压缩后的代码还原成可读源码。正常生产发布必须删。没删,就等于把后台钥匙挂门口。更离谱的是,map文件还指向一个Cloudflare R2存储桶里的zip包,谁都能下。
而且这已经是第2次。2025年2月就发生过类似问题,当时的处理方式是下架、删文件。现在又来一次。同样的错误复现,说明不是技术短板,是流程失效。
有人怀疑是Bun运行时的已知bug,编号#28001,3月11日就被报告。Claude Code之父Boris Cherny公开回应,这和Bun无关,是人为打包失误。
话说得很直接。是人,不是Bun。

真正暴露的,是工程治理能力
外界盯着源码本身,其实更值得看的,是代码里露出来的组织细节。
比如一个叫SPINNER_VERBS的常量,塞了187个加载动词,从Calculating到Daydreaming,甚至Boogieing。工程师的幽默感很足。还有一套正则表达式,用来检测用户输入里的负面词汇,一旦触发,后台标记is_negative: true,内部还有一个被戏称为fucks的监控看板,用来统计用户挫败感。
这说明什么。Anthropic已经把用户情绪当成产品指标在监控。
更有意思的是一个叫Undercover Mode的子系统,专门防止员工在公开仓库泄露内部信息,会自动抹除AI痕迹和内部代号。结果连它自己一起被打包出去。
这不是黑客攻破边界,是自己把边界拆了。说重一点,这是工程纪律的问题。CI流程里缺一道自动校验,发布前缺一次人工复核,就废了。

从实验室能力到生产系统,是另一回事
Claude Code是Anthropic当前最重要的变现产品之一,承载着模型能力向开发者工作流渗透的任务。模型推理能力再强,最后都要封装成CLI工具、SDK、API能力包,跑在真实的生产环境。
问题就在这。模型很聪明,不代表工程系统成熟。
大模型公司普遍起家于研究文化,强调论文、基准测试、能力边界。但当产品走向企业级市场,拼的是发布节奏、灰度策略、依赖管理、供应链安全。这些听起来枯燥,其实是护城河。
你可以算力堆到几万张GPU,模型参数调到极致,如果发布流程反复翻车,企业客户就会犹豫。客户要的是稳定,是可预期,而不是浪漫的工程师幽默。
这次事件没有客户数据泄露,官方也强调不是安全漏洞。从公关角度算是可控。但行业会记住一个信号,大模型公司在工程治理上还在补课。
真正的竞争,不只在模型效果,而在能不能把模型装进一套严丝合缝的工业流水线。
source map只是59.8MB的小文件,却撕开了一角。剩下的,是对流程的重新校准。
从炫技到纪律,从实验室到生产线,Anthropic要补的课,还不少。
夜雨聆风