乐于分享
好东西不私藏

Claude Code源码泄露事件复盘:AI工具开发的工程安全警示

Claude Code源码泄露事件复盘:AI工具开发的工程安全警示

2026年3月31日,安全研究员Chaofan Shou在检查Anthropic发布的npm包时发现,一个名为cli.js.map的Source Map文件被意外包含在公开发布的包中。这个约60MB的文件可以完整解析出Claude Code CLI工具的全部TypeScript源码——约1906个文件、超过51万行代码。

事件迅速在技术社区传播。不到两小时,一个GitHub仓库便获得了超过5000 Star。Claude Code的源码以一种意想不到的方式完成了“开源”。

一、事件回顾

本次泄露的发现过程颇具戏剧性。Chaofan Shou在日常安全研究工作中,习惯性检查各公司发布的npm包是否包含敏感文件。当他解压Anthropic的Claude Code包时,发现了这个不该出现的.map文件。

Source Map是前端开发中用于调试的辅助文件,它能够将压缩后的代码映射回原始源码。一旦在生产环境中泄露,便等于将源码“裸呈”于公开环境。

从技术角度看,泄露的规模令人震惊:

泄露数据项
数值
泄露文件数
1906个
代码总行数
51.2万行
Source Map大小
约60MB
GitHub仓库Star数(2小时内)
5000+

这意味着,任何具备基本技术能力的开发者,都可以完整窥探Claude Code的全部实现细节。

二、泄露原因分析

事故原因并不复杂——一个典型的人为失误。

在npm包的发布流程中,开发者可以通过两种方式控制打包内容:一是在.npmignore文件中声明需要排除的文件/目录,二是在package.jsonfiles字段中声明需要包含的文件/目录。Anthropic的工程师在发布时,疏忽了对Source Map文件的处理,导致cli.js.map被包含在最终的npm包中。

值得关注的是,这并非Anthropic首次犯下同样的错误。

2025年2月,Claude Code就曾因类似问题导致源码短暂泄露。彼时Anthropic通过删除旧版npm包并移除Source Map进行了修复。然而,不到一年后,同一个问题再次发生:

泄露事件
时间
原因
第一次泄露
2025年2月
Source Map文件遗留
第二次泄露
2026年3月31日
Source Map文件遗留

这暴露出CI/CD流程中存在系统性的管控缺失——同一个错误在同一家公司的同一产品线上发生了两次。

三、源码曝光了什么

泄露的源码为外界提供了一个难得的视角,一窥这个AI编程工具的内部架构。

从技术栈看,Claude Code采用了典型的现代CLI开发组合:

技术组件
选择
备注
开发语言
TypeScript
约51.2万行
运行时
Bun
同时支持Node
终端UI
React + Ink
终端内的React
命令解析
Commander.js
行业标准
Schema校验
Zod v4
流行的类型验证库

工具系统是源码中规模最大的部分。Claude Code内置了超过40个独立的工具模块,涵盖文件操作、Bash命令执行、代码搜索、Git操作等常见开发场景。每个工具模块都遵循统一的接口规范。

命令系统同样详尽。50多个斜杠命令覆盖了代码提交流程、代码审查、代码跳转等高频操作。

Feature Flag机制是另一个有趣的发现。源码中大量使用编译时常量折叠来控制功能开关,如VOICE_MODEKAIROSPROACTIVE等。这意味着Claude Code存在多个未发布的功能原型。

此外,源码还揭示了一个内部用户区分机制:通过检查环境变量process.env.USER_TYPE是否等于'ant'来识别Anthropic内部员工。

四、安全问题与潜在风险

对泄露代码的安全分析发现了若干值得关注的问题:

PLAN文件白名单匹配存在风险。 代码中使用startsWith方法做前缀匹配来验证PLAN文件的路径。如果攻击者能够控制PATH环境变量,可能存在绕过空间。当然,这需要满足特定的前置条件。

多级符号链接处理存在边界情况。 代码对符号链接的解析未完全覆盖所有路径组合,在极端情况下可能导致路径解析不一致。

WebSocket重连逻辑存在运行时差异。 代码库同时支持Node和Bun两个运行时,但重连机制在两个环境下的行为存在微妙差异。

⚠️ 说明:上述问题均来自对泄露代码的静态分析,未经实际验证。

五、影响评估

本次泄露对不同群体的影响并不相同。

对于普通用户而言,直接影响有限。 泄露的是CLI工具的客户端代码,不涉及:

  • • Claude的模型权重
  • • 训练数据
  • • 用户对话内容

对于Anthropic而言,影响是多维度的:

影响维度
具体表现
竞争情报
核心架构和实现细节暴露,竞争对手可深入了解其技术选型
产品规划
内部工具和未发布功能曝光,可能影响市场预期
公司声誉
年收入正处于高速增长期(已达OpenAI Codex数倍),此事对品牌造成负面影响

从商业数据看,Claude Code正处于变现阶段:

据业内估算,2026年初 Claude Code 的年收入已达到 OpenAI Codex 的 3-5 倍。考虑到Anthropic在2026年最新一轮估值中已达到约 750亿美元,Claude Code作为其核心产品之一的价值不言而喻。在此关键时刻发生这样的事故,对公司声誉的冲击不容忽视。

六、发布流程的规范建议

本次事件为AI工具开发者提供了多重警示:

1. 发布流程必须包含敏感文件检查

1
2
3
4
5

# 使用 npm pack --dry-run 预览打包内容npm pack --dry-run# 检查是否包含敏感文件npm pack --dry-run | grep -E "\.(map|env|config)$"

2. .npmignore和package.json的files字段需要精心维护

对于调试文件、Source Map、内部工具等敏感内容,应当明确排除在发布包之外。

3. CI/CD流水线中加入自动化检查

检查项
工具/方法
Source Map检查
npm pack --dry-run

 + grep
敏感文件扫描
npm audit + 第三方安全工具
files字段审核
PR审查清单

4. 工程管控需要系统性思维

同样的错误发生在同一家公司的同一产品线上,暴露出的是流程层面的系统性问题。建议建立独立的发布检查清单和定期安全审计机制。

七、冷静看待

客观而言,源码泄露本身并不等同于安全事故。Claude Code的核心价值在于Anthropic的模型能力和产品体验,而非代码本身。一个CLI工具的源码泄露,不会直接威胁到Claude AI的安全性。

但这次事件折射出的工程管理问题,值得整个行业警醒:

AI工具正在成为开发者工作流的重要组成部分,其安全性直接影响数以百万计开发者的生产环境。在追求模型能力突破的同时,工程基础能力的建设同样不可忽视


八、数据小结

关键数据
数值
泄露文件数
1906个
代码总行数
51.2万行
工具模块数
40+个
斜杠命令数
50+个
GitHub Star(2小时内)
5000+
Claude Code年收入对比
OpenAI Codex的3-5倍
Anthropic最新估值
~750亿美元
npm日均下载量(全球)
1500万次+

相关话题

#ClaudeCode #Anthropic #npm安全 #AI编程工具 #源码泄露 #开发者工具 #供应链安全 #Bun #TypeScript #AI行业


关注我精彩继续~

🙌 觉得有料?点赞、在看、转发三连!


往期回顾:

Token火了,扒一扒Token一词的前世今生

AI人工智能发展史|七十年技术演进全解析