Claude Code 源代码泄露:512,000 行 TypeScript 全曝光
Mythos 泄露五天后,Anthropic 又因 npm 打包错误意外曝光了 Claude Code 的全部源代码——1,900 个文件,512,000 行代码。
一句话概括: 2026 年 3 月 31 日,安全研究员 Chaofan Shou 发现 @anthropic-ai/claude-code npm 包的 2.1.88 版本附带了一个 59.8 MB 的 JavaScript source map 文件,指向 Anthropic 在 Cloudflare R2 上的一个公开存储桶。存储桶里是约 1,900 个 TypeScript 文件,超过 512,000 行代码,还有 44 个未发布功能的 feature flag。GitHub 上的备份仓库被 fork 了 41,500 多次,Anthropic 根本来不及反应。官方说法是「发布打包问题,人为失误,不是安全漏洞」。Fortune 说这是「五天内的第二次重大安全事故」。
Mythos 泄露五天后:Anthropic 又出事了
3 月 26 日,CMS 配置错误暴露了大约 3,000 份 Anthropic 未发布的内部文件,其中包括描述 Claude Mythos 的博客草稿。那次事件引发了约 4,000 亿美元的网安股抛售。
五天后的 3 月 31 日,又来了。
这次的载体不是 CMS,是 npm——全球数百万 JavaScript 开发者天天在用的包管理器。Fortune 把这次 Claude Code 曝光定性为 Anthropic 在「不到一周内的第二次重大安全事故」。Anthropic 不同意用「事故」这个词。从法律角度看,「事故」和「打包错误」确实有区别。但就最终暴露在公网上的东西而言,实际差别可以忽略不计。
Claude Code 源代码是怎么泄露的
@anthropic-ai/claude-code npm 包的 2.1.88 版本在发布时附带了一个 JavaScript source map 文件,体积 59.8 MB——对生产包来说大得异常。Source map 是一种开发工具,用来把打包压缩后的 JavaScript 映射回原始源代码。正常情况下会在生产构建中被排除掉。
这个 source map 本身不直接包含完整源代码,但它引用了一个 Anthropic 的 Cloudflare R2 存储桶上的 zip 压缩包。这个桶没有设访问控制,谁都能下载。只要检查一下 source map 的引用地址,就能顺藤摸瓜找到源码。
zip 里装着大约 1,900 个 TypeScript 文件,总计超过 512,000 行代码——这是 Claude Code(Anthropic 的命令行 AI 编程助手)的完整源代码树。包括应用逻辑、内部工具、配置架构、agent 编排代码和未发布的功能定义。
曝光链路很直白:构建管线没有从发布包里剔除 source map,而被引用的存储桶没有设权限。任何一个问题单独存在都不会导致全部源码曝光。但两个叠在一起,就出事了。
谁发现了 Claude Code 泄露
安全研究员 Chaofan Shou 在 3 月 31 日(周二)上午发现了这个问题。他公开披露了这个发现,指出了 source map 文件异常的大小和可访问的 R2 存储桶地址。
几个小时内,就有人开始镜像源代码。一个 GitHub 备份仓库出现后被 fork 了超过 41,500 次,Anthropic 来不及发出下架请求。传播速度之快让完全删除变得不可能——缓存副本、fork 和二次镜像确保了代码会一直留在公网上。
Claude Code 源代码里有什么
被曝光的代码库揭示了 Claude Code 的架构和产品路线图。最引人注目的是研究人员梳理出了 44 个 feature flag,指向尚未公开宣布或文档化的功能。
四个 flag 引起了最大关注:
KAIROS 在代码库中被引用了 150 多次。这个 flag 指向一个自主守护模式——一个持久运行的后台进程,让 Claude Code 可以在没有用户直接操控的情况下持续运行。引用范围之广表明 KAIROS 是最活跃开发中的未发布功能之一。详细分析见 KAIROS 守护模式深度拆解。
BUDDY 描述了一个终端宠物系统,有 18 种不同的物种。这个功能似乎是一种增强用户粘性的工具,在编程过程中在终端里渲染动画伙伴。
COORDINATOR MODE 允许从一个 Claude Code 会话中生成多个并行工作的 worker agent。实现逻辑显示这是一个多 agent 架构,主 agent 可以把子任务分配给并发运行的副 agent。
ULTRAPLAN 描述了一个远程多 agent 规划系统,用于处理预估需要 10 到 30 分钟执行时间的复杂任务。多个 agent 并行处理同一个大任务的不同部分,由一个集中规划层管理依赖和排序。
44 个 feature flag 的完整梳理见 Claude Code 泄露的 Feature Flag 全盘点。
Anthropic 的回应
Anthropic 的官方声明把这次事件定性为「发布打包问题,人为失误,不是安全漏洞」。公司强调,曝光的源代码中不包含任何客户数据、API 密钥或凭证,泄露仅限于 Anthropic 自己的专有应用代码。
这个措辞跟五天前回应 Mythos CMS 泄露时如出一辙——同样归因于内部错误而非外部攻击或系统性漏洞。两次事件中,Anthropic 都严格区分「意外暴露」和「安全漏洞」,尽管一些安全研究人员和记者对这种区分提出了质疑。
Anthropic 没有披露 source map 是从哪个版本开始被包含在发布包中的、2.1.88 之前的版本是否也受影响、以及构建管线的具体什么变动导致了这个文件被包含进去。
关于内部复盘或事后分析的时间表,也没有给出。Anthropic 也没有回应 41,500 多次 fork 以及代码实际上已无法从公网撤回这件事。
Claude Code 泄露对开发者意味着什么
开源社区的反应很复杂。一些开发者对一家主要 AI 公司连自家 npm 发布管线都没审好表示担忧。另一些人则把这次曝光视为一个意外的机会——终于能了解 Anthropic 是怎么构建 AI 开发工具的了。
泄露的源代码提供了关于 Claude Code 如何编排大语言模型与本地开发环境交互的首次详细视角。agent 架构、工具调用模式和嵌入在代码库中的 prompt 工程策略,立刻成了开发者和研究人员的分析对象。
这次事件也重新点燃了 AI 工具领域一个持续存在的张力:封闭源代码的商业 AI 产品与依赖它们的开发者社区之间的鸿沟。Claude Code 不是开源的。用户只能把它当黑盒用。这次意外曝光让用户看到了直接影响他们工作流的决策——从上下文如何管理,到工具调用如何排序。
这种透明是建设性的还是破坏性的,取决于你站在哪一边。对 Anthropic 来说,这是专有技术和未发布产品策略的意外泄露。对开发者社区来说,这是对他们每天使用的工具背后工程实现的未经过滤的一窥。两种解读都说得通。但都改变不了一个事实:代码已经永久进入了公共领域。
延伸阅读
- KAIROS 守护模式深度拆解 — 泄露源代码中发现的自主后台 agent 功能
- Claude Code Feature Flag 全盘点 — 44 个未发布功能的完整梳理和分析
- 五天两次泄露:Anthropic 的安全危机 — Mythos CMS 泄露与 Claude Code npm 泄露的对比分析
- 泄露时间线 — 两次事件的逐小时还原