Claude Code 源码泄露事件始末:51万行代码是如何"被开源"的?
2026年3月31日凌晨,Anthropic 旗下 AI 编程工具 Claude Code 的完整源码通过 npm 包意外泄露。51.2 万行 TypeScript 代码在数小时内被全球开发者镜像、分析、甚至用 Rust 重写。这是 Anthropic 一周内的第二次泄露事故,也可能是 AI 行业迄今最大规模的非故意代码曝光事件。
一、为什么会泄露?
1.1 直接原因:一个被遗忘的 source map 文件
2026年3月31日,Anthropic 将 @anthropic-ai/claude-code 的 2.1.88 版本发布到 npm 公共仓库。问题在于——这个包里附带了一个 59.8MB 的 .map 文件。
Source map 是开发调试工具,它能将压缩混淆后的代码映射回原始源码。正常情况下,.map 文件绝不应该出现在生产发布包中。
Claude Code 使用 Bun 作为打包工具,而 Bun 默认生成 source map。要排除它,需要在构建配置中显式关闭,或者在 .npmignore / package.json 的 files 字段中排除 *.map。两者都没有做到。
更糟的是,这个 .map 文件不仅包含映射信息,还直接指向了一个托管在 Anthropic Cloudflare R2 存储桶上的 zip 压缩包——任何人都可以下载并解压获得完整源码。
正如工程师 Gabriel Anhaia 所评论的:
"一个配错的 .npmignore 或 package.json files 字段,就能暴露一切。"
1.2 深层原因:这不是第一次
事实上,这已经是 Anthropic 第三次在 npm 包中意外发布 source map。此前社区项目 CCLeaks 就曾通过类似方式逆向分析出未公开功能。
更值得注意的是,就在5天前(3月26日),Anthropic 刚刚经历了另一次泄露——约 3000 个内部文件被意外公开,其中包含一篇关于未发布模型 "Mythos"(内部代号 Capybara) 的草稿博客,揭露了这款"比 Opus 更大更强但也更贵"的新一代模型。
一周两次泄露,对于一家年化营收 190 亿美元、估值 3800 亿美元的 AI 公司来说,暴露出的是工程流程管控的系统性短板。
二、泄露了什么?
2.1 规模概览
| 指标 | 数据 |
|---|---|
| 文件数 | ~1,900 个 TypeScript 文件 |
| 代码行数 | 512,000+ 行 |
| 内置工具 | ~40 个 |
| 斜杠命令 | ~50 个 |
| Feature Flag | 44 个(已构建但未上线) |
| Source map 大小 | 59.8 MB |
2.4 代码质量争议
泄露代码也引发了对代码质量的讨论:
print.ts单个文件 5,594 行,其中一个函数长达 3,167 行,包含 12 层嵌套和 486 个分支点- 一个 bug 曾导致每天浪费约 25 万次 API 调用,仅用三行代码就修复了
- 情绪检测(用户是否在骂人)使用正则表达式匹配脏话词表,而非调用自家 LLM
三、项目推荐
| 项目 | 星标 | 说明 |
|---|---|---|
| instructkr/claw-code | 50K+(2小时达成,史上最快) | Clean-room Python 重写,正在 Rust 重写 |
| Kuberwastaken/claude-code | 数千 | 源码备份 + 完整架构分析 + Rust 实现 |
| Ahmad-progr/claude-leaked-files | — | 教育用途泄露快照 |
| 其他大量 fork/mirror | 总计 41,500+ fork | 数小时内遍布全球 |
四、影响有多大?
4.1 竞争情报泄露
Claude Code 不是普通的前端代码。它是一个拥有文件系统访问、终端执行、代码仓库读写权限的 Agent 工具。泄露的实现细节大幅降低了竞对的研究成本,尤其是:
- 信任边界如何在用户意图和执行之间划定
- 权限执行机制如何控制高风险操作
- 启动阶段的安全检查流程
- 子进程中的凭据处理方式
4.2 安全攻击面扩大
Claude Code 此前已有多个 CVE 记录:
| CVE | 漏洞类型 |
|---|---|
| CVE-2025-59828 | 信任前执行缺陷 |
| CVE-2025-58764 | 命令审批绕过 |
| CVE-2025-64755 | 只读验证失败 |
| CVE-2026-21852 | 信任确认前的 API 请求 |
源码公开后,这些已知漏洞模式变得更容易被定向利用。
4.3 知识产权流失
对于一家年化营收 190 亿美元的公司来说,这不仅是安全事件,更是战略性知识产权外泄。架构模式、工具系统、多 Agent 编排——这些都已成为公共领域的讨论素材。claw-code 项目在 2 小时内就完成了 clean-room 重写并获得 5 万星标,证明社区有能力快速消化和复制这些模式。
4.4 对行业的影响
积极面:泄露客观上为整个 AI Agent 开发者社区提供了一份"工业级参考实现",加速了 Agentic AI 工具链的成熟。
消极面:反蒸馏机制和 Undercover Mode 的曝光引发了关于 AI 公司透明度和开源贡献伦理的广泛讨论。
五、最后结果
5.1 Anthropic 的应急响应
- 第一时间将受影响的 2.1.88 版本标记为 deprecated,随后从 npm 注册表中撤下
- 发布无 source map 的新版本
- 官方声明:"今天早些时候,一个 Claude Code 版本包含了一些内部源代码。没有涉及或暴露任何敏感客户数据或凭据。这是一个由人为错误造成的发布打包问题,而非安全漏洞。"
- 承诺推出防止复发的措施
5.2 但覆水难收
Anthropic 的响应速度不慢,但为时已晚:
- 源码在数小时内被镜像到多个 GitHub 仓库,总计被 fork 超过 41,500 次
- claw-code 等项目已经在此基础上构建新工具
- 所有关键技术细节已被多篇深度分析文章详细记录
- 互联网没有删除键——正如 Decrypt 的标题所说:"互联网永远保留了它"
5.3 给开发者的教训
这个事件给所有使用 npm 发布包的团队敲响了警钟:
- 检查构建流水线:确保
.map文件被排除在发布配置之外 - 在 CI 中实施发布前检查:自动扫描最终分发包中是否包含
.map文件或sourceMappingURL指令 - source map 走私有通道:通过私有上传服务而非公共 CDN 分发调试文件
- 不要假设"默认安全":Bun 默认生成 source map,不显式关闭就会泄露