第1章 · 事件始末
第1章 · 事件始末
1.1 泄露经过
2026年3月31日,区块链基础设施公司Solayer的实习生Chaofan Shou在对Anthropic发布于npm注册表的Claude Code安装包进行常规检查时,发现包中包含了一个名为 cli.js.map 的文件,大小为59.8MB。
Source Map(源代码映射)是一种开发调试工具,它建立了编译/打包后的代码与原始源代码之间的映射关系。在正常的生产发布流程中,Source Map文件应当被排除在发布包之外。然而,Anthropic的CI/CD流水线在构建Claude Code v2.1.88版本时,未能正确配置 .npmignore 或 files 字段,导致 cli.js.map 被一同发布到了公共npm注册表。
这不是一次黑客攻击或数据泄露——这是一个发布流程配置失误。
1.2 技术原理:Source Map如何还原完整源码
Source Map是一个JSON文件,遵循Source Map v3规范。其核心字段包括:
sources:原始源文件路径数组sourcesContent:每个源文件的完整原始内容mappings:Base64 VLQ编码的位置映射
当 sourcesContent 字段存在时,无需访问原始仓库即可完整还原所有源文件。Bun打包器生成的Source Map默认包含 sourcesContent,这意味着Claude Code的全部TypeScript源码——包括开发者手写的注释——都以明文形式嵌入在了这个59.8MB的JSON文件中。
社区成员使用标准工具(如 source-map npm包或 vlq 解码器)即可在数分钟内完成还原。
1.3 社区反应
消息扩散速度极快。在Chaofan Shou发布发现后的30分钟内,GitHub上的克隆仓库已积累超过5,000个Star。截至报告撰写时,多个分析仓库的Star总数已超过50,000。
主要媒体反应包括:
- 量子位/新智元:"刚刚,Claude Code开源了!51万行代码,全网狂欢"
- 36氪(亲爱的数据):"炸裂:疑似Claude Code原生源码被扒光泄露?连开发手写注释都有"
- 36氪(字母AI):"Claude Code源码泄露,下一个王牌提前曝光"
- 智东西:"突发!Claude Code'开源',全网疯传"
- DEV Community:"Claude Code's Entire Source Code Was Just Leaked via npm Source Maps"
1.4 法律定性
需要明确:这不是Anthropic主动开源。Anthropic对Claude Code源代码拥有完整版权。泄露代码的npm包许可证并未授予用户查看、修改或再分发源码的权利。
本报告的分析仅用于学术研究和技术讨论目的,不涉及任何代码的再分发或商业利用。
1.5 本报告研究方法论
本报告的分析基于以下方法:
- 完整代码还原:从npm包中的
cli.js.map文件还原全部1,884个TypeScript源文件 - 自动化扫描:使用自动化工具统计代码规模、模块依赖、特性标志分布
- 并行深度审读:6个分析Agent并行对不同子系统进行逐文件审读
- 交叉验证:对关键发现进行源码回溯验证,确保技术断言的准确性
- 竞品对比:与已有媒体报道进行信息差分析,确保报告提供增量价值