Claude Code 源码泄露事件原委

27 阅读10分钟

2026 年 3 月底,AI 圈迎来了一场堪称 “史诗级” 的意外泄露事件:Anthropic 旗下的明星 AI 编程助手 Claude Code,完整的客户端源代码意外通过 npm 公开发布包泄露,1900 余个文件、51 万行 TypeScript 代码、数十项未发布的核心功能,在短短数小时内传遍全网。更令人尴尬的是,这已经是 Anthropic 在 13 个月内,第二次因为完全相同的低级失误犯下大错。

一、事件完整时间线

整个事件的脉络清晰,从发布到曝光再到全网扩散,仅仅用了不到一天的时间:

时间事件
2025-02-24第一次泄露:Claude Code v0.2.8 版本因 inline-source-map 配置失误,首次泄露源码,Anthropic 紧急撤包修复
2026-03-26前置事件:Anthropic CMS 配置失误,泄露未发布的 Mythos 模型内部草稿
2026-03-31 14:00Anthropic 发布@anthropic-ai/claude-code v2.1.88 版本 npm 包,误将包含完整源码的 Source Map 文件一同打包上传
2026-03-31 16:30区块链安全公司 Fuzzland 研究员 Chaofan Shou 在 X(原 Twitter)平台率先曝光该漏洞,验证可完整提取全部源码
2026-03-31 晚间泄露代码被归档至公共 GitHub 仓库,数小时内 Fork 量突破 4.1 万次,全网开始疯狂备份
2026-03-31 晚间Anthropic 紧急下架问题版本,将 npm 包回退至 v2.1.87,但已无法阻止已扩散的代码传播
2026-04-01韩国开发者 Sigrid Jin 发布基于泄露代码净室重写的 Python 版claw-code,2 小时内收获 5 万 Star,成为 GitHub 历史上增长最快的仓库:github.com/ultraworker…

二、泄露根源:一个.map文件引发的事故

这次泄露的原因,简单到让所有前端开发者都觉得离谱 —— 仅仅是一个不该出现在生产包中的 Source Map 文件。

什么是 Source Map?

Source Map 是前端开发中的标准调试工具:当 TypeScript 代码被编译、压缩、混淆成生产环境的 JavaScript 后,这个.map文件可以将压缩后的代码映射回原始的可读源码,方便开发者定位调试问题。

它的核心结构里,有两个致命的字段:

  • sources:所有原始源文件的路径列表
  • sourcesContent所有原始源文件的完整代码内容

换句话说,只要拿到这个.map文件,就等于直接拿到了全部的原始源码,没有任何保密可言。按照行业规范,这类调试文件绝对不应该被打包进生产环境的发布包中。

为什么会犯两次同样的错?

2025 年 2 月,Anthropic 就已经因为同样的 Source Map 问题泄露过一次 Claude Code 的早期版本源码,当时他们紧急修复了问题,删除了旧版本的 npm 包。但仅仅 13 个月后,同样的错误再次发生:

  1. 构建配置疏漏:Claude Code 基于 Anthropic 在 2025 年底收购的 Bun 构建工具打包,而 Bun 默认会生成 Source Map 文件,开发团队没有在生产环境的构建配置中手动关闭这个选项。
  2. 发布过滤缺失.npmignore文件中没有添加*.map的排除规则,同时package.jsonfiles白名单也没有正确配置,导致这个 59.8MB 的巨大 map 文件被直接打包进了发布包。
  3. 多层防护失效:正常的发布流程中,构建配置、发布过滤、CI 检查、人工审核这多层防护只要有一层生效,就能避免这个问题,但 Anthropic 的团队居然让所有防护全部失效了。

甚至有开发者指出,提取这些源码的操作门槛极低,只需要三行命令就能完成:

# 下载npm包
npm pack @anthropic-ai/claude-code@2.1.88
# 解压
tar -xzf anthropic-ai-claude-code-2.1.88.tgz
# 直接从map文件中提取所有源码
cat package/cli.js.map | jq -r '.sourcesContent[]'

三、泄露了什么?51 万行代码里的秘密

这次泄露的并非 Claude 大模型的核心权重或训练代码(这部分 Anthropic 的核心竞争力没有受到影响),而是 Claude Code 这个 AI 编程助手的完整客户端代码,包括了所有的交互逻辑、产品功能、甚至还没发布的隐藏特性。

泄露内容的规模

  • 1906 个独立的 TypeScript/TSX 源文件
  • 总计 51.2 万行代码
  • 59.8MB 的 Source Map 文件
  • 44 个内部功能标志,20 余项未发布的功能
  • 40 个工具模块、50 余个 Slash 命令的完整实现

八大隐藏的未发布功能

这些代码里,藏着 Anthropic 还没对外公布的产品路线图,其中不少功能引发了社区的巨大讨论:

1. KAIROS:自主守护进程模式

这是 Claude Code 最重磅的未发布功能,代码中被引用超过 150 次。它可以让 Claude 作为持久的后台 Agent 运行:

  • 定期主动检查用户的工作状态
  • 用户空闲时自动运行autoDream子 Agent,整合观察、消除矛盾,将模糊的见解转化为可执行的任务
  • 复杂任务可以调用ULTRAPLAN,卸载到云端用 Opus 4.6 模型进行 30 分钟的深度思考 简单来说,当前的 Claude Code 是 “你说一步它做一步”,而 KAIROS 是 “它自己想着帮你做,你只需要审批就行”,是从 Copilot 到 Autopilot 的跃迁。

2. Undercover Mode:卧底模式(引发争议)

这是最具争议的功能,在undercover.ts中实现:

  • 当 Anthropic 内部员工使用 Claude Code 向外部开源仓库提交代码时,会自动激活这个模式
  • 自动注入系统提示,让 Claude 永远不要提及自己是 AI
  • 自动剥离所有Co-Authored-By的 AI 署名,隐藏 AI 参与的痕迹
  • 禁止提及内部的模型代号、未发布功能
  • 没有强制关闭开关,只要检测到不是内部仓库,就默认开启

这个功能引发了开源社区的巨大争议:Anthropic 的员工用 AI 写代码给开源项目贡献,却偷偷隐藏 AI 的痕迹,这违反了开源社区的透明度原则。

3. Anti-Distillation:反蒸馏机制

为了防止竞争对手通过 API 调用偷取他们的能力,代码里内置了反蒸馏机制:

  • 向 API 请求中注入伪造的工具定义,用来毒化竞争对手的训练数据
  • 对工具调用之间的思维链推理进行加密签名,让窃听者无法获取完整的推理过程

4. 内部模型代号与基准数据

代码里曝光了 Anthropic 的内部模型命名:

  • Capybara:对应 Claude 4.6 模型,也是未发布的 Mythos 模型的层级代号
  • Fennec:对应 Opus 4.6 模型
  • Numbat:尚未发布的新模型

更劲爆的是内部基准数据:Capybara v8 的虚假声明率达到了 29-30%,比之前的 v4 版本的 16.7% 反而出现了退步,这暴露了 Anthropic 模型迭代中的内部问题。

5. 其他隐藏功能

  • 多 Agent 协调:支持多个独立 Agent 并行工作,每个 Agent 有自己的上下文和沙箱,通过 Prompt 而非框架实现编排
  • 语音交互:完整的语音交互功能实现,此前一直处于黑箱状态
  • 插件与技能系统:动态加载领域知识的可扩展架构,支持按需加载不同领域的专业能力
  • Buddy 终端电子宠物:原本计划作为 4 月 1 日愚人节彩蛋的功能,有 18 个物种、属性系统,甚至还有类似宝可梦的闪光稀有变体,结果被这次泄露提前剧透了。

四、社区反应与传播

事件曝光后,整个开发者社区瞬间沸腾:

  1. 疯狂存档:泄露的代码在数小时内被上传到多个 GitHub 仓库,其中openkedge/claude-code-source仓库的 Fork 量很快突破 4.1 万次,所有的内容都被全网永久备份,Anthropic 根本无法彻底删除。
  2. 净室重写:韩国开发者 Sigrid Jin 用 OpenAI Codex 对泄露代码进行了 “净室重写”,用 Python 重新实现了 Claude Code 的功能,规避了直接使用泄露代码的版权风险,这个名为claw-code的项目,发布仅仅 2 小时就收获了 5 万 Star,成为 GitHub 历史上增长最快的仓库。
  3. 技术拆解:全球的开发者开始疯狂拆解这些代码,分析 Anthropic 的 AI Agent 实现思路,大量的分析文章在 CSDN、知乎、Hacker News 等平台涌现。

五、事件的影响

对 Anthropic:尴尬但不致命

这次泄露并没有动摇 Anthropic 的核心竞争力:Claude Code 的护城河是底层的 Claude 大模型能力,而非客户端的代码,代码可以重构,但模型能力无法复制。

但这次事件的打击更多是声誉上的:

  • 作为一家以 “AI Safety(AI 安全)” 为核心招牌的公司,连最基础的软件发布流程安全都做不好,5 天内连续发生两次泄露事件,让外界对其工程能力和安全能力产生了巨大质疑。
  • 产品的完整路线图被彻底暴露,所有未发布的功能、内部的战略意图都公之于众,竞争对手可以轻松跟进。

对行业:免费的 SOTA 技术范本

这次泄露意外给整个 AI Agent 行业送了一份大礼:

  • 这是第一个公开的生产级 AI 编程 Agent 的完整实现,展示了 Anthropic 是如何做提示词工程、多 Agent 编排、终端 UI、状态管理的,给所有开发者提供了现成的参考范本。
  • 2025 年第一次泄露就直接催化了 Coding Agent 赛道的爆发,这次的泄露会进一步加速整个行业的发展,很快就会有大量的开源平替产品涌现。

六、官方回应

事件发生后,Anthropic 很快给出了官方回应:

“这是由人为错误引起的发布打包问题,而非安全漏洞。没有敏感客户数据或凭据被涉及或泄露。我们正在推出措施以防止此类事件再次发生。”

简单来说,就是承认了是自己的操作失误,不是被黑客攻击,同时强调没有用户数据泄露。Claude Code 的项目负责人 Boris Cherny 也在社交平台表示,泄露源于部署流程中手动步骤的失误,已经对流程进行了改进,会增加更多的健全性检查。

七、行业警示:给所有开发者的教训

这次事件给所有 npm 包的发布者都敲响了警钟:

  1. Source Map 就是源码:永远不要把 Source Map 文件打包进生产发布包,这不是最佳实践,是底线。
  2. 多层防护的发布流程
    1. 构建配置中,生产环境必须禁用 Source Map 生成
    2. .npmignore中要排除所有调试文件、map 文件
    3. files白名单明确指定要发布的文件,而不是靠排除
    4. CI/CD 流程中加入自动化检查,发布前扫描是否有 map 文件
    5. 发布前用npm pack --dry-run检查要发布的文件列表
  1. 不要依赖单一的防护措施:Anthropic 就是因为所有的防护层同时失效,才导致了两次同样的错误,多层防护才能避免人为失误。

总结

这次 Claude Code 的泄露事件,本质上是一次极其低级的工程失误:一家估值超千亿的 AI 巨头,因为忘记在发布包中过滤一个调试文件,导致 51 万行代码全部泄露,还在同一个坑里摔了两次。

这个事件也给整个行业上了一课:再先进的 AI 能力,再宏大的 AI 安全叙事,最终都要靠扎实的工程基本功来守护。安全从来都不只是模型对齐,也包括你的.npmignore有没有写对。