Claude Code 源码泄露事件始末:51万行代码是如何"被开源"的?

2026年3月31日凌晨,Anthropic 旗下 AI 编程工具 Claude Code 的完整源码通过 npm 包意外泄露。51.2 万行 TypeScript 代码在数小时内被全球开发者镜像、分析、甚至用 Rust 重写。这是 Anthropic 一周内的第二次泄露事故,也可能是 AI 行业迄今最大规模的非故意代码曝光事件。

一、为什么会泄露?

1.1 直接原因:一个被遗忘的 source map 文件

2026年3月31日,Anthropic 将 @anthropic-ai/claude-code 的 2.1.88 版本发布到 npm 公共仓库。问题在于——这个包里附带了一个 59.8MB 的 .map 文件

Source map 是开发调试工具,它能将压缩混淆后的代码映射回原始源码。正常情况下,.map 文件绝不应该出现在生产发布包中。

Claude Code 使用 Bun 作为打包工具,而 Bun 默认生成 source map。要排除它,需要在构建配置中显式关闭,或者在 .npmignore / package.jsonfiles 字段中排除 *.map两者都没有做到。

更糟的是,这个 .map 文件不仅包含映射信息,还直接指向了一个托管在 Anthropic Cloudflare R2 存储桶上的 zip 压缩包——任何人都可以下载并解压获得完整源码。

正如工程师 Gabriel Anhaia 所评论的:

"一个配错的 .npmignore 或 package.json files 字段,就能暴露一切。"

1.2 深层原因:这不是第一次

事实上,这已经是 Anthropic 第三次在 npm 包中意外发布 source map。此前社区项目 CCLeaks 就曾通过类似方式逆向分析出未公开功能。

更值得注意的是,就在5天前(3月26日),Anthropic 刚刚经历了另一次泄露——约 3000 个内部文件被意外公开,其中包含一篇关于未发布模型 "Mythos"(内部代号 Capybara) 的草稿博客,揭露了这款"比 Opus 更大更强但也更贵"的新一代模型。

一周两次泄露,对于一家年化营收 190 亿美元、估值 3800 亿美元的 AI 公司来说,暴露出的是工程流程管控的系统性短板。

二、泄露了什么?

2.1 规模概览

指标 数据
文件数 ~1,900 个 TypeScript 文件
代码行数 512,000+ 行
内置工具 ~40 个
斜杠命令 ~50 个
Feature Flag 44 个(已构建但未上线)
Source map 大小 59.8 MB

alt

alt

2.4 代码质量争议

泄露代码也引发了对代码质量的讨论:

  • print.ts 单个文件 5,594 行,其中一个函数长达 3,167 行,包含 12 层嵌套和 486 个分支点
  • 一个 bug 曾导致每天浪费约 25 万次 API 调用,仅用三行代码就修复了
  • 情绪检测(用户是否在骂人)使用正则表达式匹配脏话词表,而非调用自家 LLM

三、项目推荐

项目 星标 说明
instructkr/claw-code 50K+(2小时达成,史上最快) Clean-room Python 重写,正在 Rust 重写
Kuberwastaken/claude-code 数千 源码备份 + 完整架构分析 + Rust 实现
Ahmad-progr/claude-leaked-files 教育用途泄露快照
其他大量 fork/mirror 总计 41,500+ fork 数小时内遍布全球

四、影响有多大?

4.1 竞争情报泄露

Claude Code 不是普通的前端代码。它是一个拥有文件系统访问、终端执行、代码仓库读写权限的 Agent 工具。泄露的实现细节大幅降低了竞对的研究成本,尤其是:

  • 信任边界如何在用户意图和执行之间划定
  • 权限执行机制如何控制高风险操作
  • 启动阶段的安全检查流程
  • 子进程中的凭据处理方式

4.2 安全攻击面扩大

Claude Code 此前已有多个 CVE 记录:

CVE 漏洞类型
CVE-2025-59828 信任前执行缺陷
CVE-2025-58764 命令审批绕过
CVE-2025-64755 只读验证失败
CVE-2026-21852 信任确认前的 API 请求

源码公开后,这些已知漏洞模式变得更容易被定向利用。

4.3 知识产权流失

对于一家年化营收 190 亿美元的公司来说,这不仅是安全事件,更是战略性知识产权外泄。架构模式、工具系统、多 Agent 编排——这些都已成为公共领域的讨论素材。claw-code 项目在 2 小时内就完成了 clean-room 重写并获得 5 万星标,证明社区有能力快速消化和复制这些模式。

4.4 对行业的影响

积极面:泄露客观上为整个 AI Agent 开发者社区提供了一份"工业级参考实现",加速了 Agentic AI 工具链的成熟。

消极面:反蒸馏机制和 Undercover Mode 的曝光引发了关于 AI 公司透明度和开源贡献伦理的广泛讨论。

五、最后结果

5.1 Anthropic 的应急响应

  • 第一时间将受影响的 2.1.88 版本标记为 deprecated,随后从 npm 注册表中撤下
  • 发布无 source map 的新版本
  • 官方声明:"今天早些时候,一个 Claude Code 版本包含了一些内部源代码。没有涉及或暴露任何敏感客户数据或凭据。这是一个由人为错误造成的发布打包问题,而非安全漏洞。"
  • 承诺推出防止复发的措施

5.2 但覆水难收

Anthropic 的响应速度不慢,但为时已晚:

  • 源码在数小时内被镜像到多个 GitHub 仓库,总计被 fork 超过 41,500 次
  • claw-code 等项目已经在此基础上构建新工具
  • 所有关键技术细节已被多篇深度分析文章详细记录
  • 互联网没有删除键——正如 Decrypt 的标题所说:"互联网永远保留了它"

5.3 给开发者的教训

这个事件给所有使用 npm 发布包的团队敲响了警钟:

  1. 检查构建流水线:确保 .map 文件被排除在发布配置之外
  2. 在 CI 中实施发布前检查:自动扫描最终分发包中是否包含 .map 文件或 sourceMappingURL 指令
  3. source map 走私有通道:通过私有上传服务而非公共 CDN 分发调试文件
  4. 不要假设"默认安全":Bun 默认生成 source map,不显式关闭就会泄露
#Claude Code泄露源码#
全部评论

相关推荐

03-31 15:06
已编辑
安徽大学 Java
说下我自己的经历吧,211计算机,现在大四,秋招上岸。大二下的时候看到室友去字节实习了,我当时就急了。那段时间疯狂投简历,Boss直聘、实习僧、牛客全都刷了一遍,一个月投了30多家,结果呢——已读不回是常态,少数几个给了笔试机会,做完也没下文。当时真的很焦虑,觉得自己是不是完了。后来冷静下来复盘,发现自己就是个"空壳选手":数据结构学了但没刷题,项目经历只有课设,八股文背了一半记住的不到三成。说白了,大二的我以为"投简历"就是找实习,但其实"有东西可写"才是找实习的前提。大二暑假没实习成,但那个暑假是我大学最充实的两个月。白天刷题晚上做项目,LeetCode前150题过了一遍,跟着B站撸了一个完整的SpringBoot+Vue全栈项目从0到部署,牛客面经整理了一份自己的高频题文档。虽然没去实习,但这两个月补上的东西比大二一整年学的都多。大三上学期再投的时候,明显不一样了。简历有东西写了,面试也能聊几句了。最后拿到了一家中厂的后端实习,虽然不是大厂,但真正进了业务组写代码的感觉,比在学校写课设完全是两个世界。后来大三下春招拿到了大厂暑期实习offer,秋招也顺利上岸。所以我的结论是:大三上是性价比最高的实习时间点。大一大二基础没打好,就算进去了也只能打杂,简历上也不好写。大三上投实习,大三下暑期实习,秋招直接转正或者带实习经历投,时间线刚好。而且太早实习牺牲绩点不划算,很多大厂筛简历第一关就是GPA。当然每个人情况不一样,如果你大二就有完整项目+算法基础,那早投也没问题。但对大多数普通同学来说,与其焦虑"别人都实习了我还没有",不如先问自己"我现在去实习能干啥"。想早不如想好。共勉。
你觉得大几开始实习最合适...
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务