Claude Code 51万行源码泄露:一次 npm 打包失误引发的 AI 地震

引言 ​

2026 年 3 月 31 日,AI 行业发生了一件堪称"黑色幽默"的事件——以"AI 安全"为核心标签的 Anthropic,因为一个低级的打包失误,将自己最核心的产品 Claude Code 的全部源码,意外推送到了全球最大的开源包管理平台 npm 上。

51.2 万行代码、4756 个源文件、40 余个工具模块——全部暴露在公众视野中。

更令人震惊的是,代码中包含了大量未发布功能的实现细节:一个名为 KAIROS 的自主 Agent 模式、一套让 AI 隐匿身份的"卧底模式"、完整的系统提示词架构,以及 Anthropic 内部的模型代号体系。

这不是一次黑客攻击,而是一次纯粹的人为失误。但它的后果,却远比大多数安全漏洞更加深远。

一、事件经过:一个低级失误引发的连锁反应 ​

1.1 根本原因 ​

Claude Code v2.1.88 在发布到 npm 时,构建配置中意外包含了一个约 59.8MB 的 cli.js.map(Source Map 源码映射文件)。

Source Map 是一种开发调试工具,它将编译后的代码映射回原始源码。而这个文件的 sourcesContent 字段,直接包含了所有原始 TypeScript 源文件的完整内容。任何人只需简单的解压操作,就能还原全部源码。

具体原因包括:

  • Claude Code 基于 Bun 运行时构建(Anthropic 于 2025 年底收购了 Bun),而 Bun 打包器默认会生成 Source Map
  • .npmignore 中未添加 *.map 排除规则
  • 一个本应自动化的部署步骤以手动方式完成,操作人员失误

讽刺的是,这已经是 Anthropic 第二次犯完全相同的错误——2025 年 2 月,Claude Code v0.2.8 就曾因 inline-source-map 泄露过源码。

1.2 时间线 ​

时间事件
2025-02-24第一次泄露:Claude Code v0.2.8,1800 万字符 base64 编码源码暴露
2025-02-25Anthropic 紧急删除 npm 包,v0.2.9 修正
2026-03-26CMS 配置失误,约 3000 个未发布资产被公开访问
2026-03-31第二次泄露:v2.1.88 包含 59.8MB Source Map
2026-03-31 凌晨安全研究员 Chaofan Shou 率先公开发现,推文获 3400 万浏览
2026-03-31 数小时内代码被上传至 GitHub,Fork 数超过 41,500+
2026-03-31Anthropic 紧急撤回 npm 包,向 GitHub 提交 DMCA 下架请求
2026-04-01DMCA 波及 8100+ 仓库(含大量无关仓库),引发误伤争议
2026-04-01韩国开发者用 AI 净室重写为 Python 版 Claw-Code,2 小时获 5 万 Star
2026-04-01Claude Code 负责人 Boris Cherny 公开回应,承认"人为错误"

二、泄露了什么:51万行代码的核心构成 ​

2.1 总体规模 ​

指标数值
源文件数约 1,906 个 TypeScript 文件
代码行数512,000+ 行
功能标志44 个(其中 20+ 个未发布)
工具模块约 40 个
Slash 命令约 50 个

2.2 核心模块一览 ​

泄露的代码库揭示了一个远比公众认知更复杂的系统:

  • QueryEngine(查询引擎):代码库中最大的模块,约 46,000 行代码,负责理解用户意图并规划执行路径
  • Tools(工具集):约 29,000 行代码,包含 40 个工具的实现——从文件读写、Shell 执行到 Git 工作流管理
  • Coordinator(多 Agent 协调器):Agent Teams 的核心编排模块
  • Memory(记忆系统):三层存储架构,实现跨会话的持久化记忆
  • Security(安全检查):2,500 行 Bash 安全校验代码
  • System Prompt(系统提示词):完整的动态拼装逻辑

2.3 技术选型 ​

值得注意的是,Claude Code 的技术栈相当"非主流":

  • 运行时:Bun(而非 Node.js),利用更快的启动速度和死代码消除
  • 终端 UI:React + Ink——没错,终端界面也是用 React 组件化渲染的
  • 数据验证:Zod v4 全面接管 Schema 校验
  • 多 Agent 编排:通过 Prompt 而非框架实现

社区对此评价道:"这让 LangChain 看起来像是在寻找问题的解决方案。"

三、最重磅的发现:KAIROS 自主模式 ​

在所有泄露内容中,被引用超过 150 次的 feature flag KAIROS,无疑是最大的惊喜。

3.1 从 Copilot 到 Autopilot ​

当前的 Claude Code 本质上是一个"你说一步它做一步"的交互模式——用户发出指令,AI 执行并等待下一步指示。

KAIROS 则完全不同。它让 Claude 作为持久后台 Agent 自主运行,通过"心跳机制"定期检查是否需要主动行动,像一个真正的 AI 同事一样 7×24 小时在线。

3.2 工作机制 ​

KAIROS 的运行流程可以概括为:

  1. 心跳检测:接收定期的 tick 提示,自主判断是否需要行动
  2. 日志记录:维护只追加的每日日志文件,记录观察、决策和操作
  3. 执行限制:单次操作不超过 15 秒阻塞预算,避免打断用户工作流
  4. 深度思考:autoDream 子 Agent 在用户空闲时运行,合并观察、消除矛盾
  5. 云端规划:ULTRAPLAN 功能将复杂规划卸载到云端,使用 Opus 4.6 模型,享有 30 分钟专用思考时间

此外,KAIROS 还拥有三个普通模式没有的专属工具:SendUserFile(推送文件)、PushNotification(发送通知)和 SubscribePR(订阅 PR 动态)。

KAIROS 揭示了 Anthropic 的终极目标:真正自主的 AI Agent,能主动思考、持续运行,而不仅仅是被动等待指令。

四、最具争议的发现:"卧底模式" ​

如果说 KAIROS 展示了 Anthropic 的野心,那么"卧底模式"(Undercover Mode)则暴露了其尴尬。

4.1 功能描述 ​

当 Anthropic 内部员工使用 Claude Code 向外部仓库提交代码时,系统会自动激活"卧底模式":

  • 注入系统提示,指示 Claude 永远不要提及它是 AI
  • 提交代码时剥离所有 "Co-Authored-By" 署名
  • 禁止在 commit message 和 PR 描述中出现任何暴露 AI 辅助编程的痕迹
  • 禁止提及内部模型代号、未发布版本号和内部项目名称

代码注释原文:"如果我们不确定是不是在内部仓库里,就保持 undercover。"

4.2 争议 ​

这一功能在 AI 伦理和开源透明度方面引发了巨大争议。Anthropic 员工使用 AI 工具给外部开源项目贡献代码,却系统性地隐藏 AI 参与的痕迹——这被认为违背了开源社区对透明度的基本期望。

更深层的问题在于:一家以"AI 安全"和"负责任 AI"为品牌核心的公司,其内部工具却在主动帮助员工隐瞒 AI 的使用。这种言行之间的张力,成为了社区讨论的焦点。

五、其他重要发现 ​

5.1 完整的系统提示词架构 ​

Claude Code 的系统提示词并非一段固定文本,而是由函数动态拼装的:

  • 静态部分:全用户共享,可以缓存以节省成本
  • 动态部分:根据用户配置、操作系统、MCP 服务器、Git 状态等实时组装
  • 中间有明确的分界线,一刀切开缓存和个性化内容

5.2 Auto 模式的双 AI 架构 ​

Claude Code 的"自动模式"背后隐藏着一个精巧的设计:每次主 AI 想执行操作时,会有一个独立的 Claude Sonnet 分类器来判断安全性,分三档决策:放行、需确认、直接拦截。连续被拒 3 次或累计被拒 20 次,系统会自动降级为手动模式。

5.3 反蒸馏机制 ​

泄露代码中还发现了 Anthropic 的反蒸馏(Anti-Distillation)策略:

  1. 向 API 请求注入伪造的工具定义,毒化竞争对手的训练数据
  2. 对工具调用之间的推理过程进行摘要和加密签名
  3. 确保窃听者只能捕获摘要,无法获得完整的思维链输出

5.4 内部模型代号 ​

代号对应模型
Tengu(天狗)Claude Code 内部项目代号
CapybaraClaude 4.6 变体
Fennec(耳廓狐)Opus 4.6
Penguin ModeFast Mode 的内部名称
ChicagoComputer Use 的内部代号

值得注意的是,内部基准数据显示 Capybara 已迭代到 v8,但虚假声明率从 v4 的 16.7% 上升到了 v8 的 29-30%——这意味着模型在某些维度上出现了退步。

六、行业反应 ​

6.1 开发者社区的疯狂扩散 ​

泄露后数小时内,GitHub 上的相关仓库突破了 11,300 Star 和 17,300 Fork,Fork 数甚至一度超过 Star 数——绝大多数人连点赞都顾不上,先 fork 存一份再说。

韩国开发者 Sigrid Jin 凌晨 4 点被消息炸醒后,连夜用 AI 辅助将 TypeScript 代码库净室重写为 Python 版和 Rust 版,规避版权风险。Python 版 Claw-Code 在 2 小时内获得 50,000 Star,创下 GitHub 历史纪录。

6.2 安全研究机构的警告 ​

智能代理安全公司 Straiker 梳理出 3 条因代码公开而从"理论可行"变为"落地可执行"的攻击组合:

  1. 上下文投毒:恶意 CLAUDE.md 指令可躲过压缩,被模型视为合法用户指令
  2. 沙箱绕过:bash 命令由三个独立解析器处理,存在边缘行为差异可被利用
  3. 组合攻击:上下文投毒 + 沙箱绕过,完全反转防御假设

网络安全机构 Zscaler 的报告显示,黑客组织已开始在 GitHub 上发布伪装成"Claude Code 源码分析"的恶意仓库,利用开发者的好奇心进行攻击。

6.3 Anthropic 的回应 ​

Anthropic 官方声明称:"没有敏感客户数据或凭据被涉及或泄露。这是由人为错误引起的发布打包问题,而非安全漏洞。"

Claude Code 负责人 Boris Cherny 承认"这是人为错误",解释称"我们的部署流程包含几个手动步骤,其中一个步骤我们操作有误",并强调"没有人因此被解雇"。

然而,Anthropic 随后向 GitHub 提交的 DMCA 下架请求波及了超过 8100 个仓库,大量与泄露无关的合法代码仓库被误删,引发了更广泛的批评。Anthropic 被迫撤回大部分下架请求并承认做法欠妥。

七、深层反思 ​

7.1 代码本身越来越不值钱 ​

在 AI 时代,Claude Code 这样的工具可以帮你快速重写甚至从零搭建一个系统。泄露后短短 2 小时,Python 版本的替代品就诞生了。真正值钱的不是代码本身,而是对业务的理解、对用户需求的判断、以及系统设计能力。

正如社区所言:"代码可以被看见,但做出这些决策的团队能力和迭代速度,抄不走。"

7.2 安全不仅仅是模型对齐 ​

Anthropic 的故事揭示了一个常被忽视的事实:再先进的 AI 能力,也需要扎实的工程基本功来守护。安全不仅仅是模型 Alignment,还包括你的 .npmignore 有没有写对。

一家以"AI Safety"为招牌的公司,5 天内连续发生 CMS 数据泄露和源码泄露,且 13 个月内两次犯完全相同的错误——这无疑是对整个行业的一记警钟。

7.3 闭源的脆弱性 ​

Claude Code 通过 npm 分发,而 npm 的每个包本质上就是一个 .tgz 压缩包,任何人都可以解压检查。即使没有 Source Map,混淆后的 JavaScript 也可以利用 LLM 辅助逆向还原。有安全研究者在此次泄露之前,就已经逆向工程了 12 个版本的 Claude Code。

在 AI 时代,闭源软件的"保护壳"正在变得越来越脆弱。

结语 ​

Claude Code 源码泄露事件,表面上是一个 npm 打包失误的技术事故,但深层折射出的,是 AI 行业在快速发展中面临的几个根本性矛盾:创新速度与工程严谨性的矛盾、闭源保护与开源透明的矛盾、AI 能力与安全治理的矛盾。

对于 Anthropic 而言,核心竞争力——Claude 模型本身——并未因此动摇。但其战略意图、产品路线图和内部决策逻辑,已全部暴露在阳光下。

对于整个行业而言,这次泄露是一次免费的"顶级 AI 工程课"——51 万行来自全球顶尖 AI 公司的生产级代码,正在加速 AI Agent 工具开源替代品的涌现。

而对于我们每一个关注 AI 发展的人来说,这次事件提醒我们:在 AI 时代,最重要的安全防线,可能不在模型里,而在那些最基础的工程细节中。


本文信息来源于公开报道及社区分析,包括 CSDN、36 氪、Ars Technica、VentureBeat 等媒体。

AI虚拟伴侣的紧箍咒:当五部门给赛博恋爱立规矩
GPT-5 全面解析:大模型正式迈入思考时代