乐于分享
好东西不私藏

Claude Code 源码泄露始末:一个华人小哥如何用「门外汉」直觉揪出 AI 编程助手的秘密

Claude Code 源码泄露始末:一个华人小哥如何用「门外汉」直觉揪出 AI 编程助手的秘密

Claude Code 源码泄露始末:一个华人小哥如何用「门外汉」直觉揪出 AI 编程助手的秘密
51万行代码全网裸奔,Anthropic 最赚钱的产品就这样暴露在阳光之下。而撕开这道口子的人,不是什么商业间谍,而是一个简历上写着「退学」的华人安全研究员。
01.凌晨4点23分,一条推文引爆AI圈
2026年3月31日凌晨4点23分,当大多数人还在睡梦中时,X平台上的一条推文正在以惊人的速度传播。
发推的人叫 Chaofan Shou,一个自称「门外汉」的华人安全研究员。推文内容只有一句话:
「Claude Code 源代码通过其 npm 注册表中的一个 map 文件泄露了!」
附带的,是一个下载链接。
短短几小时内,这条推文的浏览量突破 3400万,转发超过 1.2万次。开发者们像闻到血腥味的鲨鱼,蜂拥而至。
等 Anthropic 团队反应过来时,一切已经晚了——51.2万行 TypeScript 代码、1906个源文件,已经在全球开发者社群中彻底扩散。
这不是黑客攻击,不是系统入侵,而是一次低级到令人难以置信的人为失误
02.发现者是谁?一个「辍学博士」的逆袭
Chaofan Shou 是谁?
在事件爆发前,这个名字在AI圈几乎无人知晓。但翻开他的履历,你会发现这是一个标准的「天才少年」剧本——只是结局有点不一样。
学术背景:
• 本科:UC Santa Barbara 计算机科学
• 博士:UC Berkeley Sky Computing Lab,导师是程序分析领域大牛 Koushik Sen
• 但他在博士期间选择了辍学,主页上轻描淡写地写着:「but I dropped out :p」
职业经历:
• Salesforce 安全工程师,负责静态分析和内网安全
• Veridise 创始工程师,主导智能合约自动化测试工具
• FuzzLand 联合创始人兼 CTO,Web3 安全公司,协助追回超3000万美元被黑资金,目前保护资产超50亿美元
战绩清单:
他的个人主页上有一个叫「Things I Broke」的栏目,密密麻麻排了三十多条记录,读起来像一份硅谷安全圈的「通缉名单」:
• 2021年:CVS Pharmacy SSRF + TLS 投毒漏洞
• 2023年:Twitter XSS + CSRF + CSP 绕过,理论上可接管全平台账户
• 2024年:AI 编程工具 Devin.ai SSRF 漏洞
• 还有 FTX、Polygon、Google Nest、三星智能家居……
Bug Bounty 总收入:190万美元。
就是这样一个「辍学博士」,在3月31日当天进行常规安全检查时,敏锐地捕捉到了 Claude Code npm 包中的异常。
03.泄露了什么?51万行代码里的「核心机密」
这次泄露的代码量堪称「史无前例」。
泄露规模:
• 51.2万行TypeScript 代码
• 1906个未混淆的源文件
• 文件大小:59.8MB的 source map 文件
什么是 source map?
简单说,这是一个开发者调试工具,能把压缩后的代码还原成可读的原始源码。正常情况下,发布到生产环境时必须删除,但 Anthropic 忘了删
更离谱的是,这个 map 文件还指向了 Anthropic 自家 Cloudflare R2 存储桶上的一个 zip 压缩包——任何人都可以下载、解压,拿到完整的源码树
从源码中挖出的「机密」:
1. 完整的权限控制模型 —— 谁可以执行什么操作,一目了然
2. bash 安全校验的底层逻辑 —— 沙箱机制的核心代码
3. 44个尚未上线的功能开关 —— 包括:
• 「Buddy」:终端里的电子宠物,稀有度与 Claude 账号绑定
• 「Kairos」:跨会话记忆和后台自主行动
• 「UltraPlan」:支持最长30分钟的连续执行任务
• 「Undercover Mode」:专门用来防止 Anthropic 员工泄露内部信息的系统(讽刺的是,它自己也泄露了)
4. 多智能体编排、远程执行等关键技术的实现方式
有开发者专门上线了一个网站(ccunpacked.dev),详细解读解压后的源码。GitHub 上的镜像仓库被 fork 超过 7.7万次,速度之快,连 OpenClaw 都要让位。
04.Anthropic 的「亡羊补牢」:封杀8000个仓库,但为时已晚
发现源码泄露后,Anthropic 反应迅速,立刻启动应急响应。
紧急下架:
• 向 GitHub 提交版权下架请求(DMCA)
• 一度导致超过 8000个相关副本及衍生版本被删除
• 但出现了「误伤」——误删了不少与泄露无关的合法仓库,引发开发者不满
官方回应:
Claude Code 之父 Boris Cherny 在 X 上简短留言:
「这是人为错误,与 Bun 漏洞无关。没有人因此被解雇。」
Anthropic 发言人对 The Register 的回应是:
「没有客户数据或凭证泄露。这是一个由人为失误导致的发布打包问题,不是安全漏洞。」
但问题是,源码已经彻底野生扩散
即便 Anthropic 紧急撤回多余的下架申请,大量镜像已被开发者保存、转发,这场「封杀」终究只是「亡羊补牢」。
05.更讽刺的是:这已经是第二次了
如果你以为这是 Anthropic 第一次犯这种错误,那就太天真了。
2025年2月,Claude Code 早期版本就因为同样的 source map 问题泄露过一次。当时的处理方式是从 npm 删包、移除 map 文件。
一年后,同样的事又发生了。
有开发者挖出了可能的根源——一个 Bun 运行时的已知 bug。这个 bug 在2025年3月11日就被人在 GitHub 上报了(编号#28001),反映的问题是 Bun 在生产模式下依然会输出 source map。
但 Boris Cherny 明确回应:这和 Bun 无关,纯人为导致的泄露。
也就是说,Anthropic 明知有这个风险,还是没有在发布流程中加入基础校验
06.源码泄露后,真的有安全风险吗?
Anthropic 反复强调:没有用户数据泄露,没有模型权重泄露,没有加密密钥泄露。
但安全专家指出,源码公开意味着攻击路径从「理论可行」变成了「落地可执行」
智能代理安全公司 Straiker 的 Jun Zhou 梳理出 3条可执行攻击组合
攻击1:基于压缩管道的上下文投毒
• 在 CLAUDE.md 文件中植入恶意指令
• 躲过压缩机制,被模型视为合法用户指令执行
攻击2:基于 Shell 解析差异的沙箱绕过
• 利用 bash 命令解析器的边缘行为差异
• 构造特殊命令绕过安全校验
攻击3:组合攻击(上下文投毒 + 沙箱绕过)
• 模型是「配合的」,上下文被武器化
• 输出的命令看起来完全是合理开发者会批准的内容
防御方通常假设「模型有恶意、用户是合规方」,而这种攻击完全反转了逻辑。
07.给行业的启示:真正的风险藏在细节里
回头看这场风波,一切都始于一次偶然的发现,源于一个微小的人为失误。
没有高明的攻击,没有精密的漏洞利用,却引发了 AI 圈的大地震。
核心原因在于: Anthropic 在快速迭代产品的过程中,忽略了发布流程的基础校验。
Chaofan Shou 的发现,不仅揭开了一场安全隐患,更给整个 AI 行业敲响了警钟:
模型升级、功能增加固然重要,但基础的工程流程稳固,才是产品安全的底线。
很多时候,真正的风险,从来都不是来自复杂的技术环节,而是藏在那些最基础、最容易被忽视的细节里
一个 source map 文件,59.8MB,忘了删——仅此而已。
08.写在最后
这场由一个 source map 引发的「51万行代码大逃杀」,最终以一种荒诞的幽默感收场。
泄露的源码中,有一个叫 SPINNER_VERBS 的常量,列表中塞进了整整 187个 等待加载的动词——从正经的「正在计算」(Calculating)到离谱的「正做白日梦」(Daydreaming)、「正在蒸发」(Evaporating)、「正在跳迪斯科」(Boogieing)……
有网友提议:希望将 gooning 加入列表。
Boris Cherny 幽默地拒绝了:「虽然我觉得这很奇怪,但如果你真想要,可以去设置里让 Claude 自己想。」
讽刺的是,泄露的代码中还有一个「fucks」图表——Anthropic 内部用来监测用户对 Claude 爆粗口频率的看板。
一个专门为了防泄露而设计的系统,连同它自己一起泄露了。
这或许就是技术世界最迷人的地方:再严密的系统,也敌不过一个「忘了删」的人为失误。而再「门外汉」的直觉,也能撕开最坚固的防线。