2026 年 3 月 31 日,AI 圈迎来了一场意想不到的"愚人节前夕大礼":Anthropic 旗下明星产品 Claude Code 的全部源代码,因一个打包失误意外流向了互联网。
这不是黑客攻击,不是内鬼泄密,而是有人忘记在 .npmignore 里加了一行 *.map。
就这样,51 万行 TypeScript 代码、44 个隐藏功能开关、以及一个叫做 KAIROS 的神秘"后台自主代理",在几小时内暴露在所有人面前。
事件经过:一个 .map 文件引发的雪崩
泄露是如何发生的?
2026 年 3 月 31 日,Anthropic 在 npm 上发布了 @anthropic-ai/claude-code 的 2.1.88 版本。这次更新本是例行维护,但却附带了一个巨大的"彩蛋"——一个 59.8 MB 的 JavaScript Source Map 文件(.map 后缀)。
Source Map 是开发者用于调试压缩/混淆代码的工具,它能将编译后的代码映射回原始的 TypeScript 源码。正是这个本应只存在于内部的调试文件,被意外打入了公开发布的 npm 包里。
更关键的是,这个 .map 文件还指向了一个 Anthropic 自家云存储上的 ZIP 压缩包,里面存放着完整的源代码仓库。所有人只需要顺着这条线索,就能下载到全部代码。
根本原因:有人忘记在 .npmignore 文件中添加 *.map 规则,导致 Source Map 文件随包一起发布。
传播有多快?
代码在公开后数小时内便被开发者社区察觉,随即被备份到 GitHub 上。根据 Layer5 的统计,相关仓库的 Fork 数量迅速突破 41,500 次,一度成为 GitHub 历史上增长最快的仓库。
Anthropic 很快确认了这一事件,但表示这只是一次"发布打包失误",没有泄露用户数据或凭证信息。
泄露的内容:512,000 行代码里藏着什么?
源代码共包含 1,906 个 TypeScript 文件,整个 AI 圈的开发者和研究者们开始像考古学家一样,在代码里挖掘 Anthropic 从未公开过的秘密。
秘密一:KAIROS —— 始终在线的自主 AI 代理
这是泄露内容中最受关注的发现之一。代码中一个名为 KAIROS 的功能标志被提及超过 150 次。
KAIROS 来自古希腊语,意为"恰当的时机"。从代码逻辑来看,它代表着 Claude Code 的一次重大范式转变:从被动响应变为主动的后台自主守护进程(Daemon)。
具体来说,KAIROS 模式包含一个叫做 autoDream 的子机制:当用户处于空闲状态时,Claude 会在后台自动进行"记忆整合",将分散的观察合并、消除逻辑矛盾,并将模糊的认知转化为具体的知识。
这本质上是让 AI 拥有了一种持续学习和自我优化的能力——不仅是在你主动使用时,而是随时随地都在运转。
秘密二:BUDDY —— 一只赛博电子宠物
是的,你没看错。代码里藏着一个完整的电子宠物系统,叫做 BUDDY。
它有:
- 18 个物种可供选择
- 稀有度分级:普通(60%)→ 稀有 → 史诗 → 传说(1%)
- 闪光变体(类似宝可梦的色违)
- 专属属性值,包括
DEBUGGING(调试力)、PATIENCE(耐心)、CHAOS(混乱值)、WISDOM(智慧)和SNARK(毒舌度)
根据代码注释,BUDDY 原本计划作为愚人节彩蛋于 4 月 1 日悄悄上线预告,并在 5 月正式发布。结果,在 3 月 31 日就被这次意外泄露提前"剧透"了——时机不可谓不讽刺。
秘密三:隐身模式 —— Anthropic 员工的"马甲"
代码中还发现了一个被称为"隐身模式"(Stealth Mode)的功能,其设计目的是隐藏 Anthropic 员工对开源项目的贡献。
简单来说,当 Anthropic 工程师使用 Claude Code 向开源社区提交代码时,该模式会对外屏蔽其 Anthropic 员工的身份。这一发现在开源社区引发了一定的讨论和争议。
秘密四:反蒸馏机制 —— 给竞争对手的"毒药"
代码中的 ANTI_DISTILLATION_CC 功能标志揭示了一个更具攻击性的策略:向 API 请求中注入虚假的工具定义。
其目的在于污染那些监听 API 流量、试图通过"知识蒸馏"来学习和复制 Claude 能力的竞争对手的训练数据。此外,代码还会对 AI 的推理过程进行摘要并附上加密签名,使得窃听者只能获取摘要,而非完整的思维链输出。
安全警告:趁火打劫的黑客
意外泄露事件本身危害有限,但随之而来的安全风险不可小觑。
Axios npm 遭投毒:北朝鲜黑客的精准狙击
就在同一天(3 月 31 日),黑客攻陷了流行 HTTP 库 Axios 的 npm 账号,发布了两个恶意版本(1.14.1 和 0.30.4)。这些版本通过一个名为 plain-crypto-js 的隐藏依赖,植入了一个跨平台远程访问木马(RAT)。
恶意版本在被 npm 下架前存活了约 2-3 小时。
Google 威胁情报团队将此次攻击归因于 UNC1069——一个具有朝鲜背景的、以经济利益为驱动的威胁行为者,所使用的恶意软件为 WAVESHAPER.V2。
高危时间窗口:如果你在 3 月 31 日 00:21 UTC 至 03:29 UTC 之间通过 npm 安装或更新了 Claude Code,你的机器可能已被植入恶意代码。
GitHub 上的假冒仓库
除了 npm 投毒,威胁行为者还在 GitHub 上散布了伪装成"Claude Code 源代码镜像"的恶意仓库。这些仓库诱骗用户运行一个 Rust 编写的投放程序,最终部署 Vidar Stealer(信息窃取木马)和 GhostSocks(代理恶意软件)。
应急自查步骤
如果你是开发者,请立即执行以下检查:
- 检查你的项目
lockfile(package-lock.json或yarn.lock),查找axios版本1.14.1或0.30.4。 - 检查是否存在
plain-crypto-js依赖项。 - 如果发现上述任一情况,立即将该主机视为已完全沦陷:轮换所有密钥和凭证,并考虑重装操作系统。
影响与反思
对 Anthropic 的影响
这次事件对 Anthropic 的直接损失是竞争情报的泄露。KAIROS、反蒸馏机制等未发布的战略功能,已被竞争对手和研究者提前看到。
但从另一个角度看,Anthropic 的处理方式——快速承认、如实说明原因——在一定程度上维护了公众信任。
对供应链安全的警示
这次事件是一个关于 软件供应链安全 的经典案例:
- 开发侧:一个被遗忘的打包规则(
.npmignore)可以造成灾难性的信息泄露。 - 攻击侧:黑客能够以惊人的速度(同日)利用高关注度事件实施供应链攻击。
- 用户侧:在重大事件发酵期间,来自"官方渠道"之外的任何下载都极度危险。
这提醒每一个维护开源项目的团队:发布流程的审计和自动化检查,与代码本身的质量同等重要。
结语
Claude Code 源代码泄露事件,是 2026 年 AI 领域最戏剧性的事故之一。它以一种意想不到的方式,让公众得以一窥顶尖 AI 工具背后的工程逻辑与产品野心——从重塑人机交互范式的 KAIROS,到充满极客趣味的电子宠物 BUDDY。
然而,伴随着这场意外透明化而来的,是供应链攻击的真实威胁。它再次提醒我们:在这个软件高度依赖开源生态的时代,安全从来不只是代码里的事,更是发布流程、依赖管理和应急响应能力的综合体现。
延伸阅读: