1. 事件概述:一场由调试文件引发的技术狂欢
2026年3月31日,AI编程圈发生了一起足以载入技术史册的"非自愿开源"事件。Anthropic公司旗下的核心产品Claude Code,因一个本不该出现在生产环境中的调试文件,导致51.2万行TypeScript源码在短短4小时内全网公开。这场意外不仅让技术社区陷入狂欢,更暴露了现代软件开发流程中那些容易被忽视的安全隐患。
作为一位经历过多次重大技术事件的从业者,我必须说这次泄露的特殊性在于:它既不是黑客攻击的结果,也不是内部人员的恶意行为,而纯粹是工程流程中的一个小疏忽——一个忘记从npm包中移除的.map文件。这种看似微不足道的失误,却让一家以"AI安全"为核心卖点的公司付出了惨痛代价。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 时间线复盘:从失误到失控的4小时
2.1 泄露源头:一个被遗忘的.map文件
3月31日下午14:00左右,Anthropic工程团队像往常一样发布了@anthropic-ai/claude-code的v2.1.88版本。这个常规更新本应只包含终端交互体验的优化和部分函数调用逻辑的改进,但打包过程中一个致命的疏忽发生了——Rollup生成的source map文件(cli.js.map)没有被加入.npmignore,随包一起发布到了npm仓库。
技术细节:Source map文件本质上是一个JSON格式的映射表,它建立了压缩/混淆后的代码与原始源码之间的对应关系。在开发环境中,这个文件对调试非常有价值;但在生产环境中,它就像是一把打开保险箱的钥匙。
2.2 发现与扩散:技术社区的连锁反应
16:30,安全研究员@Fried_rice在安装这个npm包时,意外发现了体积异常大的cli.js.map文件。凭借职业敏感,他立即使用source-map-explorer工具进行解析,结果让他震惊——这个60MB的文件可以完整还原出未压缩、未混淆的TypeScript源码,包括所有注释和变量名。
17:00,相关推文在X平台迅速发酵。技术社区的反应速度令人咋舌:
- 17:30,GitHub上出现第一个完整备份仓库instructkr/claude-code
- 19:00,开发者开始发布"源码核心模块解析"和"隐藏功能盘点"
- 22:00,Python重构版本claude-co
