Claude Code 源码泄露,51.2 万行代码裸奔,Anthropic 同一坑跌倒两次?

摘要:Claude Code 源码泄露全复盘:51.2 万行代码裸奔,Anthropic 在同一个坑里摔了两次 2026 年 3 月 31 日,Anthropic 旗下的明星 AI 编程工具 Claude Code,因一个极其低级的构建配置失误,
Claude Code 源码泄露全复盘:51.2 万行代码裸奔,Anthropic 在同一个坑里摔了两次 2026 年 3 月 31 日,Anthropic 旗下的明星 AI 编程工具 Claude Code,因一个极其低级的构建配置失误,完整源代码意外全网泄露。1900+ 文件、512,000+ 行 TypeScript 代码、44 个功能标志、20+ 个未发布特性——全部公之于众。更尴尬的是,这已经是 13 个月内第二次犯完全相同的错误。 一、事件时间线 2025-02-24 第一次泄露 Claude Code v0.2.8,inline-source-map 暴露源码 2025-02-25 紧急修复 Anthropic 删除 0.2.8 之前的 npm 包,0.2.9 修正问题 2026-03-26 CMS 泄露 Anthropic CMS 配置失误,泄露未发布的 Mythos 模型草稿 2026-03-31 第二次泄露 Claude Code v2.1.88,cli.js.map 包含完整源码 2026-03-31 安全研究员 Chaofan Shou 在 X 平台首先公开此事 2026-03-31 代码被归档至公共 GitHub 仓库,数小时内被 Fork 41,500+ 次 2026-03-31 Anthropic 紧急撤包,版本回退至 v2.1.87 2026-04-01 韩国开发者 Sigrid Jin 用 OpenAI Codex 净室重写 Python 版 claw-code 发布 2 小时获 50,000 star,成为 GitHub 历史上增长最快的仓库 二、泄露原因:一个 .map 文件引发的血案 2.1 什么是 Source Map? Source Map 是前端开发中的调试利器。当 TypeScript/JavaScript 代码经过编译、压缩、混淆后,Source Map 文件能把它"还原"回原始源码,方便开发者在浏览器或 Node.js 中调试。 一个典型的 .map 文件结构如下: { "version": 3, "sources": ["../src/index.ts", "../src/utils.ts", ...], "sourcesContent": ["// 这里是完整的原始源码...", ...], "mappings": "AAAA,SAAS..." } 关键字段是 sourcesContent——它直接包含了所有原始源文件的完整内容。换句话说,只要拿到 .map 文件,就等于拿到了全部源码。 2.2 第一次泄露(2025 年 2 月) Claude Code 随 Claude 3.7 一起发布,以 npm 包形式分发。在 v0.2.8 及之前版本中: 使用了开发环境配置打生产包 生成的 .mjs 文件高达 22MB(正常应该几百 KB) 文件巨大的原因:包含了 inline-source-map 混淆形同虚设,一行命令即可反解出全部源码 Anthropic 反应迅速——光速删除了 0.2.8 之前的包,在 0.2.9 中修正。但 GitHub 上已经有人存档了完整代码(如 dnakov/claude-code)。 2.3 第二次泄露(2026 年 3 月) 版本从 0.2.x 演进到 2.1.88,代码量膨胀了近 10 倍,但同样的错误再次发生: 根本原因:npm 包中误留了 cli.js.map 文件(59.8 MB) 具体而言: 1. Claude Code 基于 Bun 构建(Anthropic 于 2025 年底收购了 Bun) 2. Bun 默认生成 Source Map 3. .npmignore 中未添加 *.map 排除规则 4. package.json 的 files 字段也未正确配置 5. 可能存在 Bun bug (#28001):即使生产模式也生成 Source Map 提取方式极其简单: # 下载 npm 包 npm pack @anthropic-ai/claude-code@2.1.88 # 解压 tar -xzf anthropic-ai-claude-code-2.1.88.tgz # cli.js.map 的 sourcesContent 字段中包含了所有源码 # 一行 jq 即可提取 cat package/cli.js.map | jq -r '.sources[]' 2.4 Anthropic 的官方回应 "这是由人为错误引起的发布打包问题,而非安全漏洞。没有敏感客户数据或凭据被涉及或泄露。
阅读全文