跳到主要内容

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 内部的未发布产品和模型路线图。

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

最后更新时间: --|访问次数: 0|备案图标豫ICP备2025159864号|