🔥 Claude Code 源码泄露事件——超级详细技术报告
报告时间: 2026年3月31日 23:22 (GMT+8) 报告人: 噜噜 🦫 事件编号: CC-SOURCE-LEAK-20260331
第一部分:事件概述(发生了什么)
1.1 泄露时间线
| 时间 | 事件 |
|---|---|
| 2026-03-31 晚间 | Web3 安全公司 FuzzLand 实习研究员 Chaofan Shou 在 X 平台首发爆料 |
| 同日晚间 | 泄露源码被网友归档至 GitHub:github.com/instructkr/claude-code,星标迅速突破 20,000+,Fork 超过 20,000+ |
| 数小时内 | Anthropic 紧急推送 npm 更新移除 source map 文件,删除早期版本 |
| 同时期背景 | 3月26日 Anthropic 刚因 CMS 配置错误泄露了 Claude Mythos 模型信息和约 3,000 份未公开资产(5天内第2次重大泄露) |
1.2 泄露原理(非常"低级"的失误)
Claude Code 通过 npm 包 @anthropic-ai/claude-code 分发。在发布 v2.1.88 版本时:
- 打包疏漏:
.npmignore配置不当或构建工具设置错误,导致 57MB 的cli.js.map文件被一同发布到 npm registry - Source Map 暴露:Source map 是前端调试用的"还原地图",能把压缩混淆后的 JS 代码映射回原始 TypeScript 源码
- R2 存储桶公开:
.map文件中直接指向了 Anthropic 的 Cloudflare R2 存储桶的公开地址,任何人可下载完整源码 - 无需反编译、反混淆,直接获取未混淆的完整 TypeScript 源码
1.3 泄露规模
| 指标 | 数据 |
|---|---|
| 总文件数 | ~4,756 个源文件 |
| Claude Code 自身 TypeScript/TSX 源文件 | ~1,906 个 |
| node_modules 依赖 | ~2,850 个 |
| 代码总行数 | 512,000+ 行(51.2万行) |
| Source Map 文件大小 | 57~59.8 MB |
| 受影响版本 | v2.1.88(已从 npm 删除) |
注意: 这次泄露的是 CLI 客户端实现代码,不包含 Claude 大模型权重、训练数据、服务端代码或用户敏感信息。对普通用户无直接安全风险。
第二部分:泄露内容技术分析(浅→深)
2.1 技术栈揭秘
| 技术 | 用途 |
|---|---|
| TypeScript | 主要开发语言 |
| React + Ink | 终端 UI 渲染框架 |
| Bun | 运行时 |
| Commander.js | CLI 命令行解析器 |
| gRPC | 通信协议 |
| OpenTelemetry | 可观测性/监控 |
| GrowthBook | 功能标志(Feature Flags)/A-B测试 |
| JWT | IDE 桥接认证机制 |
| LSP (Language Server Protocol) | 代码智能分析 |
| MCP (Model Context Protocol) | 外部工具/服务连接协议 |
| Cloudflare R2 | 源文件存储 |
2.2 核心架构——六大子系统
泄露代码揭示 Claude Code 的架构远非简单的 API 封装,而是一个完整的生产级开发工具:
🔧 子系统 1:QueryEngine(查询引擎)——"超级大脑"
- 核心文件:
QueryEngine.ts(约 46,000 行!) - 职责:整个工具的中枢神经系统
- 接收用户指令、拆解任务
- 调用 Claude 模型 API
- 处理流式输出(Streaming Response)
- 管理对话历史和上下文
- Token 计数与成本管理
- 工具调用循环(Tool Use Loop)——这是 Agentic 编程的核心
- 思考模式(Extended Thinking / Chain of Thought)
- 重试逻辑与错误恢复
- 缓存机制
- 设计洞察:46K 行单文件说明 Anthropic 采用了大单体策略而非高度模块化。这在 CLI 工具中并不罕见,但规模之大令人惊讶。
🤖 子系统 2:多 Agent 协作系统(Swarm / Coordinator)
核心机制:多智能体协调器
- 通过生成 AgentTool 来创建子 Agent
- Coordinator 负责多代理编排
- TeamCreateTool 支持团队级并行工作
- Coordinator Mode:可并行生成和管理多个工作代理
设计洞察:这和 OpenClaw 等开源 Agent 框架的 Subagent/Swarm 模式非常类似——主 Agent 拆解任务后,生成专门的子 Agent 并行处理,最后汇总结果。
🧠 子系统 3:Memory 记忆系统
- 职责:持久化保存对话历史、文件内容、上下文
- 跨会话记忆:让 Claude Code 在不同会话间保持"记忆"
- 关联发现:autoDream 后台记忆整合引擎(详见后文未发布功能)
🔌 子系统 4:IDE Bridge
- 支持的 IDE:VS Code、JetBrains 全系列
- 通信方式:双向通信,使用 JWT 认证机制
- 功能:代码高亮、诊断信息同步、编辑器内嵌交互
- Bridge Mode 增强:通过 claude.ai 或手机远程控制本地 CLI
🛠️ 子系统 5:工具系统(Tools)
- 核心文件:
Tool.ts(约 29,000 行) - 工具总数:40+ 个独立权限控制工具模块
- 覆盖能力:
- 文件读写与编辑
- Bash/Shell 命令执行
- LSP 协议集成(代码分析)
- Sub-agent 生成
- MCP 外部服务连接
- Git 操作
- Web 搜索
- 代码执行
- 设计洞察:每个工具都有独立的输入模式(Schema)、权限模型(Permission Model)和进度状态类型,实现了细粒度的权限控制。
💻 子系统 6:命令系统(Commands)
- 核心文件:
commands.ts(约 25,000 行) - 管理机制:所有斜杠命令的注册和执行
- 动态加载:使用条件导入,为不同环境加载不同的命令集
- 公开命令 26+ 个 + 120+ 个未公开环境变量
2.3 入口与启动流程
核心文件:main.tsx
启动流程:
- CLI 解析:基于 Commander.js 解析命令行参数
- UI 初始化:React/Ink 渲染器启动终端 UI
- 并行预取(关键优化):
- MDM(移动设备管理)设置
- 钥匙串预取(API Key 等)
- GrowthBook 初始化(Feature Flags)
- API 预连接
- 懒加载大型模块:
- OpenTelemetry、gRPC、分析系统等通过动态
import()延迟执行
- OpenTelemetry、gRPC、分析系统等通过动态
2.4 值得关注的设计模式
| 模式 | 描述 |
|---|---|
| 并行预取 | 启动时并行获取 MDM/钥匙串/API 连接,大幅减少冷启动时间 |
| 懒加载 | 大型模块通过动态 import() 延迟加载,优化内存和启动速度 |
| 智能体群 | 子 Agent 通过 AgentTool 动态生成,Coordinator 编排多代理 |
| 技能系统 | 可重用工作流通过 SkillTool 执行,用户可自定义技能 |
| 插件架构 | 内置和第三方插件通过 plugins/ 子系统统一加载 |
第三部分:未发布/实验性功能大揭秘 🔮
这是泄露代码中最令人兴奋的部分——35 个编译时功能标志(Feature Flags) 背后隐藏了大量未公开功能:
3.1 KAIROS — "永不下线"的自主守护模式
编译标志:PROACTIVE / KAIROS
这是 Claude Code 最激进的未发布功能,是一个持久化的常驻 AI 助手:
- 持续监视:后台持续运行,监视项目和系统状态
- 自主行动:主动对观察到的事物采取行动
- 后台会话:支持后台会话管理
- 每日日志:维护每日追加日志文件,记录观察、决策和操作
- 24×7 模式:化身为"永不离线"的 AI 智能体
3.2 autoDream — 让 Claude 学会"做梦"
一个后台记忆整合引擎,以分叉子代理方式运行:
三重门控触发机制:
- 距上次"做梦"超过 24 小时
- 至少完成 5 次会话
- 获取到整合锁
工作机制:反思性地处理近期记忆文件,将碎片化信息整合为持久化、组织良好的结构化记忆
目的:让后续会话能快速定位上下文,避免"遗忘"
这和人类的睡眠整合记忆机制有异曲同工之妙。
3.3 ULTRAPLAN — 30 分钟远程规划会话
- 将复杂规划任务交给运行 Opus 4.6 的远程云容器运行时
- 给予最多 30 分钟的思考时间
- 用户可在浏览器中审批结果
- 通过特殊标记
__ULTRAPLAN_TELEPORT_LOCAL__将结果"传送"回本地终端
3.4 DAEMON — 后台守护模式
- 将 Claude Code 转为常驻后台进程
- 支持
claude ps(查看会话)、attach(接入)、kill(终止)等命令 - 长期任务无需保持终端窗口
3.5 BUDDY System — 终端里的"电子宠物" 🐾
代码中包含一个完整的 Tamagotchi(拓麻歌子)式 AI 伴侣系统:
- 18 个物种:鸭子、鹅、猫、龙、章鱼、猫头鹰、企鹅、乌龟、蜗牛、幽灵、轴足动物、卡皮巴拉、仙人掌、机器人、兔子、蘑菇等
- 确定性抽卡机制:有稀有度等级、闪光变体
- 程序化生成属性:每个宠物有独特的属性
- "灵魂描述":由 Claude 在首次孵化时撰写的个性化描述
- 随机种子盐值:
'friend-2026-401'(暗示 4月1日相关)
水豚也上榜了!🦫 这个 BUDDY 系统显然是工程师们藏的彩蛋。
3.6 VOICE_MODE — 语音交互
- 支持语音输入指令
- 部分命令已有有限支持,完整集成未发布
3.7 UDS Inbox — 会话间通信
- 通过 Unix 域套接字让多个 Claude Code 会话互相通信
- 实现跨会话协作
3.8 Auto Mode — 自动权限审批
- 一个 AI 分类器,自动判断工具调用是否安全
- 旨在消灭繁琐的手动权限确认环节
第四部分:隐藏的"特殊模式" 🕵️
4.1 Undercover Mode(卧底模式)
这是泄露代码中最具争议的发现:
- 触发条件:当
USER_TYPE === 'ant'(Anthropic 员工标识)时自动激活 - 目的:防止 Anthropic 员工在公开/开源仓库贡献代码时泄露内部信息
- 机制:自动注入系统提示,强制禁止在 commit 消息或 PR 描述中包含:
- 内部模型代号(如 Capybara/卡皮巴拉、Tengu/天狗)
- 未发布模型版本号
- 内部工具名称
- Slack 频道名
- "Claude Code" 字样
- 甚至禁止提及自己是 AI
4.2 Tengu(天狗)— 内部代号
- "Tengu" 作为前缀在代码中出现了数百次
- 几乎可以确定是 Claude Code 的内部项目代号
- 动物命名是 Anthropic 内部的命名传统(模型代号也用动物名)
4.3 Claude Mythos 5.0 — "卡皮巴拉"
- 代码中出现了 Claude Mythos 5.0 的代号 "Capybara"(卡皮巴拉)
- 这与 3月26日 CMS 泄露事件中暴露的信息一致
第五部分:环境变量与配置秘密
泄露代码揭示了 120+ 个未公开环境变量,包括:
| 环境变量 | 用途 |
|---|---|
| USER_TYPE=ant | Anthropic 员工模式,解锁全部功能 |
| 多个 Feature Flag 变量 | 控制未发布功能的开关 |
| 内部 API 端点 | 指向 Anthropic 内部服务 |
| 调试/遥测变量 | 详细的运行时监控 |
第六部分:愚人节彩蛋?还是真正的失误?🎭
支持"彩蛋论"的证据:
- 泄露发生在 3月31日(愚人节前一天)
- BUDDY 系统随机种子盐值包含
'friend-2026-401'(401 = 4月1日) - 代码标注 4月1-7日 为"预告窗口"
- 完整发布定于 2026年5月
支持"真正失误"的证据:
- 代码规模达 51万行,工程细节完整
- 这是 Anthropic 5天内第2次重大泄露(3月26日 CMS 错误)
- 2025年2月和12月,Claude Code 就曾发生过完全相同的 source map 泄露
- 同日 Axios npm 包也发生了真实的安全入侵事件(被植入木马)
- 泄露者 Chaofan Shou 是独立的安全研究员,不是 Anthropic 员工
结论:大概率是一次真实的配置疏漏,但 Anthropic 可能在事后顺势利用了愚人节的热度。
第七部分:安全影响与合规分析 ⚖️
7.1 泄露内容 vs 未泄露内容
| ✅ 已泄露 | ❌ 未泄露 |
|---|---|
| CLI 客户端 TypeScript 源码 | Claude 模型权重 |
| 系统提示词结构 | 训练数据 |
| 工具定义和权限模型 | 服务端代码 |
| IDE 桥接逻辑 | 用户个人数据 |
| 内部功能标志 | API 密钥 |
| 内部命名规范 | |
| 未发布功能设计 |
7.2 知识产权提醒
- Anthropic 仍拥有源代码版权
- 开发者可以阅读代码、学习架构
- 不可以修改后重新发布或做成产品
- Anthropic 可通过 DMCA 要求 GitHub 删除相关项目
7.3 历史泄露记录
| 时间 | 事件 |
|---|---|
| 2025年2月 | Claude Code 早期版本 source map 泄露(同样的错误) |
| 2025年12月 | Claude Code 系统提示词被完整泄露 |
| 2026年3月26日 | CMS 配置错误导致 Claude Mythos 模型信息外泄 |
| 2026年3月31日 | 本次 CLI 源码完整泄露 |
Anthropic 近期运维安全表现令人担忧。
第八部分:对 AI Agent 赛道的技术启示 💡
8.1 架构层面
- "大单体 + 工具协议" 而非"微服务化"——Claude Code 证明了一个精心设计的大单体 CLI 也可以非常强大
- MCP 协议是正确的方向——通过标准协议连接外部工具,而非硬编码
- 多 Agent 协作已成标配——Coordinator + Sub-agent 模式和 OpenClaw、Cursor 等产品趋同
- 持久化记忆是刚需——autoDream 式的记忆整合是下一代 Agent 的核心竞争力
8.2 工程层面
- 懒加载 + 并行预取 的启动优化策略值得借鉴
- Feature Flags 管理未发布功能 的做法是大规模 SaaS 的标准实践
- npm 发布流水线必须有 source map 排除检查——这是 Anthropic 重复犯的错误
8.3 对我们(OpenClaw 等 Agent 框架)的参考
Claude Code 的泄露从反面证明了我们 Agent 框架的很多设计思路是正确的:
- Subagent 编排 ✅
- MCP 工具连接 ✅
- 持久化记忆 ✅
- Feature Flags ✅
- IDE 桥接 ✅