乐于分享
好东西不私藏

Claude Code源码泄露复盘:打包失误基本坐实,但这几个疑点仍然解释不通

Claude Code源码泄露复盘:打包失误基本坐实,但这几个疑点仍然解释不通

引言

Claude Code源码泄露已超过48小时(截至2026年4月1日)。instructkr的仓库68K Stars、70K Fork。Anthropic公开回应称这是”packaging issue caused by human error, not a security breach”,且无客户敏感数据或凭证暴露。

但”打包失误”三个字,显然解释不了所有疑问。

这篇文章不是阴谋论,是基于公开事实的复盘:哪些已确认,哪些仍有疑问,哪些对开发者有实际启示。

一、已确认的事实

首先明确已经被Anthropic官方和媒体确认的事实:

事实
来源
npm包中残留了Source Map
社区发现,多人独立验证
可从Source Map还原出TypeScript源码
ChinaSiro、sanbuphy等多个仓库
Anthropic定性为”打包时的人为失误”
The Verge、Axios报道
不涉及客户数据泄露或云端系统被攻破
Anthropic官方声明
部分仓库已收到takedown notice
Axios报道

关键边界:这是源码暴露事件,不是客户数据泄露,不是云端系统入侵。这个区分很重要——很多讨论把它等同于”重大安全事件”,这是过度解读。

二、仍然解释不通的点

打包失误可以解释Source Map残留,但以下几个点仍然让人困惑:

1. CI/CD自动剥离步骤怎么失效的?

生产构建中剥离Source Map是DevOps基本规范。大多数CI/CD Pipeline会有专门的步骤删除.map文件或在bundler配置中关闭sourcemap输出。Anthropic作为一家重视安全的AI公司,这个环节是怎么失效的?

2. 代码注释质量异常高

内部代码的注释通常是写给团队成员看的——简短、假设读者有上下文。但Claude Code的源码注释详细到像教程,几乎每个模块都有架构说明。这不是典型的内部代码风格。

3. 泄露时间节点

3月31日Source Map被发现 → 4月1日BUDDY电子宠物开始预告上线。虽然这可能纯属巧合,但时间卡得确实太巧。

4. 防泄露意识很强,但Source Map没删

Feature Flag用随机词对(tengu_onyx_plover)掩盖功能名,代号用String.fromCharCode编码,有专门的金丝雀检测脚本——这些都说明Anthropic本身有很强的防泄露意识。但为什么最基本的Source Map没删?

三、真正值得讨论的问题

与其纠结”是不是故意的”,不如关注这些更有价值的问题:

为什么发布流程没能阻止?一家在安全上投入大量资源的公司,为什么在最基本的构建配置上出了问题?这对所有发布npm包的团队都是警示。

为什么传播无法被有效控制?npm一旦发布就被CDN和mirror永久缓存。即使后续版本删除Source Map,旧版本永远可以下载。70K Fork意味着即使DMCA原始仓库,代码已经不可能被收回。

开源时代的”不可逆传播”这件事暴露了一个结构性问题:在npm/PyPI/Docker Hub这类公开包管理系统上,一次构建配置错误的传播速度,远超任何法务团队的反应速度。

四、对开发者的启示

技术启示

  • • 检查你的npm包有没有Source Map残留 — npm pack 后解压看看有没有.map文件
  • • npm一旦发布就被永久缓存 — 即使unpublish,72小时内的版本已经被mirror同步
  • • Source Map是生产构建的常见盲区 — 很多团队的CI/CD没有专门的剥离步骤

法律提醒

  • • 不要镜像、不要分发泄露的源码
  • • 不要基于泄露代码做商用开发
  • • 不要把发现的内部接口视为稳定承诺 — Anthropic随时可能改架构
  • • 学习架构思路完全没问题 — 这和阅读反编译代码理解设计模式是一样的

总结

打包失误基本坐实了。但70000个Fork说明了一件事:在开源时代,一次构建配置错误的传播速度,远超任何法务团队的反应速度。