Claude Code 源码二度泄露:AI巨头栽在同一个低级漏洞上
Claude Code 源码二度泄露:AI巨头栽在同一个低级漏洞上
导语
2026年3月31日,AI 圈发生了一件大事:Anthropic 旗下的明星产品 Claude Code 源码全面泄露。51万行 TypeScript 代码、完整的安全架构、甚至未来的产品路线图,全部暴露在阳光下。更令人大跌眼镜的是,这已经是 Anthropic 在 13 个月内第二次犯下完全相同的错误。
一、历史重演:同一个坑,跳了两次
2026年3月31日,区块链安全公司 FuzzLand 联合创始人 Chaofan Shou 在 X 上爆出一个惊天大瓜:Anthropic 发布的 npm 包 @anthropic-ai/claude-code 中,竟然包含了一个约 60MB 的 source map 文件(cli.js.map)。
通过这个文件,开发者可以完整还原出 Claude Code 的全部 TypeScript 源代码。
消息一出,全网狂欢。短短数小时内,GitHub 上就出现了源码归档仓库,瞬间斩获 1.5 万 Stars 和 2.2 万 Forks。
但最讽刺的不是泄露本身,而是“复读机”式的失误。
早在 2025 年 2 月,Claude Code 就曾因为同样的原因泄露过源码。当时 Anthropic 悄悄删文件、清缓存,以为能瞒天过海。没想到 13 个月后,同样的构建配置错误再次上演。
“这是工程文化的信号,不只是技术失误。”
一家估值数百亿美元、以“AI 安全”著称的顶尖公司,竟然在同一个低级错误上栽倒两次,这不得不让人质疑:当 AI 公司以互联网速度狂飙突进时,它们的工程安全能力真的跟上了吗?
二、泄露了什么?代码不是核心,架构才是
虽然这次泄露没有暴露 API 密钥或用户数据(谢天谢地,Anthropic 的基础安全实践还算及格),但流出的内容足以让竞争对手和黑客笑出声。
1. 安全架构的“全裸”蓝图
泄露的代码包含了约 40 个内置工具的完整权限模型和沙箱机制。原本处于“黑盒”状态的安全逻辑,现在变成了“开卷考试”。攻击者可以直接审计 Tool.ts(2.9万行)和 QueryEngine.ts(4.6万行)的每一行代码,寻找绕过路径。
2. 未发布功能的“剧透”
代码中的时间戳和 Feature Flags 暴露了 Anthropic 极其详尽的路线图:
- Interleaved Thinking(交替思考能力)
- 1M 上下文窗口
- Structured Outputs(结构化输出)
- VOICE_MODE(语音模式)
- Claude Mythos 5.0(代号:Capybara/水豚)
这些信息对于竞争对手来说,简直是价值连城的战略情报。
3. 内部基础设施细节
从 OAuth Client ID 到内部员工专用的构建版本(包含额外的调试功能),Anthropic 的内部运作细节在开发者面前几乎没有秘密。
三、JS 生态的“结构性陷阱”
为什么强如 Anthropic 也会反复翻车?这背后折射出 JavaScript/npm 生态中一个长期被低估的系统性风险。
|
|
|
|---|---|
|
|
|
|
|
|
|
|
npm pack--dry-run 检查。 |
Anthropic 选择用 Bun 构建、通过 npm 分发一个闭源的 CLI 工具,本质上是在一个透明的基础设施上构建不透明的产品。这种张力,最终通过源码泄露的方式爆发了。
四、沉默的 Anthropic:是理性还是傲慢?
面对两次泄露,Anthropic 的应对方式如出一辙:沉默。
没有公开声明,没有技术复盘,只是默默地删除旧版本、清理缓存。从公关角度看,沉默可以避免事件进一步扩大;但从社区信任角度看,这种“装死”的行为正在透支开发者的信任。
有开发者在 Hacker News 上直言不讳:“这就是 JavaScript 生态不成熟带给你的,Anthropic 的表现像个业余新手。”
相比之下,身份验证公司 Persona 在遇到类似问题时,一小时内就发布了透明的事后复盘。这种态度的差异,高下立判。
五、启示:AI 时代,闭源还有意义吗?
这次事件给所有 AI 开发者敲响了警钟:
- 安全成熟度必须匹配产品复杂度 你能为用户构建复杂的安全沙箱,却在自己的发布流程上漏掉一个检查脚本,这是极大的讽刺。
- 闭源 CLI 的战略价值正在减弱 OpenAI 和 Google 的 CLI 工具大多选择开源。Claude Code 的核心竞争力在于模型能力和用户体验,而非那几十万行 CLI 代码。
与其被动泄露,不如主动开源。泄露后全网狂欢的 Stars 数证明了开发者对产品的认可,如果 Anthropic 能顺势拥抱开源,或许能将这场公关危机转化为品牌红利。
最后,作为开发者,请务必检查一下你的 npm 发布流程: 你的 .npmignore 真的生效了吗?你的生产环境里还藏着 .map 文件吗?
别让下一个“全网狂欢”的主角变成你。
夜雨聆风