Claude Code 源码泄露:一场本不该发生的 Source Map 事故
Claude Code 源码泄露:一场本不该发生的 Source Map 事故
2026年愚人节前一天,Anthropic 旗下明星编程工具 Claude Code 收到了一个不太友善的”礼物”——512,000 行完整 TypeScript 源码被人从 npm 包里直接捞了出来,明晃晃地摊在所有人面前。
更讽刺的是,这不是被黑客攻破的,是自己构建流程没配置好导致的。属于是”门没锁好,不是被撬开的,是门压根儿就没关”。
事件回顾
3月31日,安全研究员 Chaofan Shou(FuzzLand)在检查 Claude Code 最新版 npm 包时发现:
- 包内有一个体积达 57MB 的
cli.js.map文件 - 这个 source map 指向了一个 R2 存储桶链接,内含 1,906 个 TypeScript/TSX 源文件
- 任意人下载 npm 包后,无需任何反编译,直接拿到完整原始代码
消息一出,GitHub 上迅速出现归档,全网 fork。Anthropic 紧急推送更新移除 source map、删除早期版本,但代码已经永久留存。
根本原因:Source Map 本不该出现在生产包
说清楚这个问题需要一点前端构建知识。
Source Map(.map 文件)是 JavaScript 构建过程中生成的调试文件,作用是将压缩混淆后的代码映射回原始源码,方便本地调试。比如线上报了个错,你希望通过 source map 看到原始代码哪里出了问题。
问题在于:source map 文件只应该留在本地开发环境或内部 CI/CD 流程里,绝对不应该被打进生产发布包,更不应该上传到 npm registry。
Anthropic 的这次失误,简单说就是构建工具配置有疏漏,.npmignore 或者构建脚本没有正确排除 .map 文件,导致 source map 跟着代码一起发了出去。
这是一个极其基础、极其不应该的错误。不是安全攻防,是 DevOps 质量管控问题。
讽刺的是:这不是第一次
2025年2月,Claude Code 早期版本就因为同样的 source map 问题泄露过一次源码。彼时 Anthropic 迅速删除了旧版本并修复了配置。
然后,2026年3月26日,Anthropic 又因为 CMS 配置错误 泄露了 Claude Mythos 模型信息和约 3,000 份未公开资产。
3月31日,源码再次因 source map 配置失误泄露。
5天内两次重大泄露,这就不是偶发了,是系统性流程存在隐患。
泄露了什么
根据网友对源码的分析,暴露内容包括:
| 类别 | 详情 |
|---|---|
| 功能开关 | 35个编译时功能标志(Feature Flags) |
| 环境变量 | 120+ 个未公开的环境变量 |
| 内部命令 | 26 个未公开的斜杠命令(如 /teleport、/dream、/good-claude) |
| 项目代号 | ”Tengu”(天狗)被确认为 Claude Code 内部项目代号 |
| BUDDY 系统 | 类似 Tamagotchi 的 AI 伴侣系统,有抽卡、闪光变种等机制 |
| Undercover Mode | 防止 Anthropic 员工在公开仓库贡献代码时意外泄露内部信息的特殊模式 |
影响几何
对安全社区——这次泄露等于给安全研究员提供了一份完整的 Claude Code 内部地图。120+ 环境变量和 35 个功能开关意味着外界可以精确知道哪些功能还在开发中、哪些尚未公开,以及产品的下一步方向。对竞争对手来说,这份情报价值不小。
对 Anthropic——连续的安全事故会让企业客户对 Anthropic 的运维能力产生质疑。尤其是 Claude Code 主要面向开发者市场,这个群体对代码安全和工程规范格外敏感。Anthropic 一直强调的”安全第一”人设,此刻多少有些尴尬。
对整个行业——npm 作为全球最大的 JavaScript 包仓库,一次配置失误就能让 51 万行代码流出去,说明 major AI 厂商在工程化基础设施建设方面,可能远没有其在模型能力上那么领先。
写在最后
愚人节这天看到这条新闻,本以为是什么节假日的玩笑。但看多了之后,只剩下一个感受:
一家公司在模型能力上已经摸到了 AGI 的边,但在最基本的软件发布流程上,还犯着”source map 没排除”这种大二学生才会犯的错误。
技术卓越和工程规范是两码事。Anthropic 是时候给自家的 DevOps 流程也做一次安全审计了。
Anthropic 于 2026年3月31日 紧急修复了 source map 外泄问题,相关 npm 版本已更新。