跳到主要内容

Claude Code 源码泄漏事件

· 阅读需 12 分钟
viki
Front End Engineer @ gitee

一、事件概述

2026年3月31日,Anthropic 官方 AI 编程 CLI 工具 Claude Code 的完整源代码被意外泄露。安全研究员 Chaofan Shou (@Fried_rice) 在 X (Twitter) 上公开披露了这一发现:

"Claude code source code has been leaked via a map file in their npm registry!"

这是继 OpenAI 系统提示词泄露后,AI 行业又一重大安全事件。

二、泄漏原因分析

2.1 技术根因:Source Map 文件暴露

Claude Code 的 npm 发布包中包含了一个 .map 源码映射文件,该文件包含了完整的、未混淆的 TypeScript 源代码。

Source Map 文件结构示例:

{
"version": 3,
"sources": ["../src/main.tsx", "../src/tools/BashTool.ts", "..."],
"sourcesContent": ["// 完整的原始源代码...", "..."],
"mappings": "AAAA,SAAS,OAAO..."
}

关键问题:

  • sourcesContent 数组包含了所有原始源码
  • 任何人可通过 npm pack 或直接浏览 npm 包内容获取
  • 这不是新型攻击向量,但 Anthropic 仍未防范

2.2 错误链条

环节问题
构建配置未配置 bundler 跳过生产环境的 source map 生成
发布检查.npmignore 未排除 *.map 文件
质量门禁无自动化检测敏感文件泄漏
Bun bundler默认生成 source maps,未显式关闭

2.3 讽刺之处

Claude Code 内部有一个完整的 "Undercover Mode"(卧底模式) 系统,专门用于防止 Anthropic 内部信息泄漏。他们构建了一整套子系统来阻止 AI 在 git 提交中意外暴露内部代号……然后自己通过 .map 文件把整个源码发布出去了。

三、泄漏内容深度分析

3.1 代码规模

指标数值
源码文件数~1,900 个 TypeScript 文件
代码行数~512,000 行
主要入口main.tsx (785KB)
核心架构React + Ink 终端渲染

3.2 架构揭秘

3.2.1 核心组件

claude-code/
├── coordinator/ # 主编排循环 - 管理会话轮次、工具调用决策
├── QueryEngine.ts # Claude API 通信,处理流式响应
├── context/ # 上下文窗口管理,自动压缩
├── tools/ # 40+ 工具实现
├── ink/ # 基于 React/Ink 的终端渲染引擎
├── commands/ # 80+ 斜杠命令
├── services/ # API、MCP、LSP 等服务
├── skills/ # 可复用的提示模板系统
├── buddy/ # 伴侣精灵系统
└── vim/ # 完整 vim 模拟

3.2.2 工具系统(40+ 工具)

工具类别工具名称功能
Shell 执行BashTool / PowerShellTool执行 shell 命令(支持沙箱)
文件操作FileReadTool / FileEditTool / FileWriteTool文件读写编辑
搜索GlobTool / GrepTool文件搜索(原生 bfs/ugrep 加速)
网络WebFetchTool / WebSearchTool / WebBrowserTool网页访问
代码智能LSPToolLanguage Server Protocol 集成
子代理AgentTool生成自主子代理
MCPMCPTool / McpAuthToolModel Context Protocol 支持
后台任务TaskCreateTool / TaskGetTool / TaskListTool后台任务管理
权限控制AskUserQuestionTool用户交互确认

3.2.3 斜杠命令(80+)

  • /compact — 压缩对话上下文
  • /model — 切换模型
  • /vim — 切换 vim 模式
  • /cost — 显示 token 使用量
  • /diff — 显示最近更改
  • /plan — 进入规划模式
  • /review — 代码审查
  • /memory — 管理持久化记忆
  • /voice — 语音输入模式
  • /doctor — 诊断问题
  • /security-review — 安全审查(仅内部)

四、未发布功能曝光

4.1 Buddy 伴侣精灵系统 🐾

这是最有趣的部分! Claude Code 内置了一个完整的"电子宠物"系统。

物种稀有度

稀有度概率物种
Common60%Pebblecrab, Dustbunny, Mossfrog, Twigling, Dewdrop, Puddlefish
Uncommon25%Cloudferret, Gustowl, Bramblebear, Thornfox
Rare10%Crystaldrake, Deepstag, Lavapup
Epic4%Stormwyrm, Voidcat, Aetherling
Legendary1%Cosmoshale, Nebulynx

特殊机制

  • Shiny 闪光变种:独立 1% 概率,与稀有度无关
  • 传奇闪光概率:0.01%(1% × 1%)
  • 确定性生成:同一用户永远获得相同的 Buddy(基于 Mulberry32 PRNG + userId hash)

属性系统

每个 Buddy 拥有:

  • 5 项属性:DEBUGGING, PATIENCE, CHAOS, WISDOM, SNARK(各 0-100)
  • 6 种眼睛样式
  • 8 种帽子选项(部分受稀有度限制)
  • 灵魂描述:首次孵化时由 Claude 生成的个性描述

发布计划

代码中提到 2026年4月1-7日 作为预告窗口,2026年5月 全面发布。

4.2 KAIROS 主动助手模式

KAIROS 是一个 持久运行、主动行动 的 Claude 助手模式,不需要等待用户输入。

核心特性

特性描述
后台运行持续监控、记录日志、主动行动
Tick 提示定期接收 <tick> 提示,决定是否行动
阻塞预算15 秒阻塞限制,超过则延迟执行
Brief 模式极简响应风格,适合持久助手

独占工具

工具功能
SendUserFile直接推送文件给用户(通知、摘要)
PushNotification发送推送通知到用户设备
SubscribePR订阅并监控 PR 活动

4.3 ULTRAPLAN 深度规划模式

将复杂规划任务卸载到远程 Cloud Container Runtime (CCR) 会话,运行 Opus 4.6,给予最多 30 分钟思考时间

工作流程

1. Claude Code 识别需要深度规划的任务
2. 启动远程 CCR 会话(tengu_ultraplan_model 配置)
3. 终端显示轮询状态(每 3 秒检查结果)
4. 浏览器 UI 展示规划过程,用户可批准/拒绝
5. 批准后通过 __ULTRAPLAN_TELEPORT_LOCAL__ "传送"结果

4.4 autoDream 记忆整合引擎

Claude Code 有一个叫做 "dream"(梦境) 的后台记忆整合引擎——让 Claude 做梦。

触发条件(三重门控)

门控条件
Time gate距上次 dream 24 小时
Session gate至少 5 个会话
Lock gate获取整合锁(防止并发 dream)

四阶段流程

Phase 1 - Orient:定位记忆目录,读取 MEMORY.md,浏览现有主题文件
Phase 2 - Gather Recent Signal:从日志、漂流记忆、转录搜索收集新信息
Phase 3 - Consolidate:写入或更新记忆文件,转换相对日期为绝对日期,删除矛盾事实
Phase 4 - Prune and Index:保持 MEMORY.md 在 200 行/~25KB 以下

系统提示词:

"You are performing a dream - a reflective pass over your memory files. Synthesize what you've learned recently into durable, well-organized memories so that future sessions can orient quickly."

4.5 Undercover Mode(卧底模式)

Anthropic 员工(USER_TYPE === 'ant')使用 Claude Code 贡献开源项目时,此模式激活。

注入的系统提示

## UNDERCOVER MODE - CRITICAL

You are operating UNDERCOVER in a PUBLIC/OPEN-SOURCE repository. Your commit
messages, PR titles, and PR bodies MUST NOT contain ANY Anthropic-internal
information. Do not blow your cover.

NEVER include in commit messages or PR descriptions:
- Internal model codenames (animal names like Capybara, Tengu, etc.)
- Unreleased model version numbers (e.g., opus-4-7, sonnet-4-8)
- Internal repo or project names
- Internal tooling, Slack channels, or short links (e.g., go/cc, #claude-code-…)
- The phrase "Claude Code" or any mention that you are an AI
- Co-Authored-By lines or any other attribution

确认事项

  • Anthropic 员工主动使用 Claude Code 贡献开源
  • AI 被告知隐藏自己是 AI
  • 内部模型代号是动物名称(Capybara、Tengu 等)
  • "Tengu" 在代码中出现数百次,几乎确定是 Claude Code 的内部项目代号

4.6 Coordinator Mode 多代理协调模式

启用 CLAUDE_CODE_COORDINATOR_MODE=1 后,Claude Code 从单代理转变为协调器,并行生成、指导和管理多个工作代理。

阶段设计

阶段执行者目的
ResearchWorkers(并行)调研代码库、定位文件、理解问题
SynthesisCoordinator阅读发现、理解问题、制定规范
ImplementationWorkers按规范进行针对性修改、提交
VerificationWorkers测试修改是否有效

关键原则

"Parallelism is your superpower. Workers are async. Launch independent workers concurrently whenever possible - don't serialize work that can run simultaneously."

"Do NOT say 'based on your findings' - read the actual findings and specify exactly what to do."

4.7 Penguin Mode(企鹅模式)🐧

是的,他们真的叫它"企鹅模式"。

const endpoint = `${getOauthConfig().BASE_API_URL}/api/claude_code_penguin_mode`

配置键:penguinModeOrgEnabled 开关:tengu_penguins_off 失败事件:tengu_org_penguin_mode_fetch_failed

到处都是企鹅。

五、未发布模型曝光

5.1 Claude "Capybara"

  • 新模型家族,已到 v2 版本
  • 变体:capybara-v2-fast(正在准备,支持 1M 上下文窗口)
  • 分为 "fast" 和常规 thinking 层级

5.2 版本路线图

模型状态
Opus 4.7代码中已引用
Sonnet 4.8代码中已引用

5.3 已知问题与缓解

问题:Capybara 在提示形状类似于工具结果后的轮次边界时,可能过早停止生成

缓解措施

  • 强制安全边界标记 "Tool loaded." 防止模糊轮次边界
  • 重新定位可能触发过早停止的风险代码块
  • 将提醒文本压缩到工具结果中以保持生成流畅
  • 为空工具输出添加非空标记

所有这些都有可快速回滚的开关(tengu_* 前缀标志)。

六、Beta 功能清单

constants/betas.ts 揭示了所有 Claude Code 与 API 协商的 beta 功能:

Beta 功能用途
interleaved-thinking-2025-05-14Extended thinking
context-1m-2025-08-071M token 上下文窗口
structured-outputs-2025-12-15结构化输出格式
web-search-2025-03-05网页搜索
advanced-tool-use-2025-11-20高级工具使用
effort-2025-11-24Effort 级别控制
task-budgets-2026-03-13任务预算管理
prompt-caching-scope-2026-01-05提示缓存范围
fast-mode-2026-02-01快速模式(Penguin)
redact-thinking-2026-02-12思考内容编辑
token-efficient-tools-2026-03-28Token 高效工具模式
afk-mode-2026-01-31AFK 模式
cli-internal-2026-02-09仅内部(ant)
advisor-tool-2026-03-01Advisor 工具

七、编译时特性标志

Claude Code 使用 Bun 的 feature() 函数进行编译时特性开关,打包器会进行常量折叠和死代码消除:

标志功能
PROACTIVE / KAIROS始终在线助手模式
KAIROS_BRIEFBrief 命令
BRIDGE_MODE通过 claude.ai 远程控制
DAEMON后台守护进程模式
VOICE_MODE语音输入
WORKFLOW_SCRIPTS工作流自动化
COORDINATOR_MODE多代理编排
TRANSCRIPT_CLASSIFIERAFK 模式(ML 自动审批)
BUDDY伴侣精灵系统
NATIVE_CLIENT_ATTESTATION客户端认证
HISTORY_SNIP历史片段提取
EXPERIMENTAL_SKILL_SEARCH技能发现

此外,USER_TYPE === 'ant' 控制 Anthropic 内部特性:staging API 访问、内部 beta 头、Undercover 模式、/security-review 命令、ConfigTool、TungstenTool 等。

八、权限系统

8.1 权限模式

模式描述
default交互式提示用户确认
auto基于 ML 的自动审批(转录分类器)
bypass跳过检查
yolo拒绝所有(讽刺性命名)

8.2 风险分类

每个工具操作被分类为 LOW、MEDIUM、HIGH 风险。

8.3 保护文件

以下文件受保护,禁止自动编辑:

  • .gitconfig
  • .bashrc
  • .zshrc
  • .mcp.json
  • .claude.json
  • 其他敏感配置

8.4 攻击防护

  • URL 编码路径遍历
  • Unicode 标准化攻击
  • 反斜杠注入
  • 大小写不敏感路径操纵

九、GitHub 上的衍生项目

9.1 主要仓库

仓库Stars描述
Work25/claude-code1k+修复后的本地可运行版本,支持自定义 API
Kuberwastaken/claurst5.3k+Rust 重实现 + 完整分析博客
leaked-claude-code/leaked-claude-code334+源码快照 + 构建系统重建
asgeirtj/system_prompts_leaks35.5k+多 AI 系统提示词集合(含 Claude Code)

9.2 NanmiCoder/claude-code-haha 特性

  • 完整 Ink TUI 交互界面
  • --print 无头模式
  • 支持 MCP 服务器、插件、Skills
  • 支持自定义 API 端点(MiniMax、OpenRouter 等)
  • 降级 Recovery CLI 模式

9.3 修复的问题

问题根因修复
TUI 不启动入口脚本路由错误恢复 cli.tsx 完整入口
启动卡死缺失 .md 文件导致 Bun text loader 挂起创建 stub 文件
--print 卡死缺失类型文件创建类型桩文件
Enter 键无响应native 包缺失导致异常try-catch 容错

十、安全启示

10.1 核心教训

  1. Source Map 是双刃剑:生产环境必须禁用或排除
  2. 防御深度:不应依赖单一检查点
  3. 自动化检测:发布前扫描敏感文件
  4. 讽刺性教训:专门防止泄漏的系统反而导致了最大的泄漏

10.2 最佳实践建议

// bundler 配置示例(Bun)
export default {
sourcemap: false, // 生产环境禁用
// 或
sourcemap: "external", // 外部生成但不发布
}

// .npmignore
*.map
*.ts
src/

10.3 企业影响

  • 知识产权损失:核心架构、业务逻辑完全暴露
  • 竞争优势削弱:竞争对手可直接学习实现细节
  • 安全风险:攻击者可分析漏洞
  • 未发布功能曝光:产品路线图被迫透明

十一、法律与伦理

11.1 代码版权

所有原始源码版权归 Anthropic 所有。衍生项目声称仅供"学习和研究用途"。

11.2 Clean Room 重实现

Kuberwastaken/claurst 采用了 两阶段清洁室工程

  1. Specification:AI 分析源码并生成详尽的行为规范
  2. Implementation:独立的 AI 仅根据规范实现,从未引用原始 TypeScript

这符合 Phoenix Technologies v. IBM (1984) 确立的法律先例。

11.3 Fair Use 抗辩

代码摘录用于说明技术观点,引用公开可用软件,受 17 U.S.C. § 107 保护。

十二、事件时间线

时间事件
2026-03-31 早些时候Chaofan Shou 发现泄漏
2026-03-31X 上公开披露
2026-03-31 晚GitHub 上出现多个镜像仓库
2026-04-01衍生项目(修复版、Rust 重实现等)涌现
2026-04-01 至今社区深度分析、博客文章发布

十三、本地运行

基于 Claude Code 泄露源码使用OpenCode(使用的模型mimo v2 pro)修复的本地可运行版本, 支持接入任意 Anthropic 兼容 API(如 MiniMax、OpenRouter 等)。

十四、总结

Claude Code 源码泄漏是 2026 年 AI 行业最重大的安全事件之一。一个精心构建、功能强大的 AI 编程工具,因为一个简单的配置错误——没有在生产构建中禁用 source maps——而将整个源代码暴露给世界。

这次泄漏不仅揭示了 Claude Code 令人印象深刻的架构深度(多代理系统、记忆梦境、伴侣精灵等),也暴露了 Anthropic 内部的未发布产品和模型路线图。

对于整个行业,这是一个警钟:安全链的强度取决于最薄弱的环节

最后更新时间: 2026/7/31 13:40:35|访问次数: 0|豫ICP备2025159864号|