Claude Code 源码泄露事件:51万行代码

2026年3月31日,AI圈发生了一场"地震"——Anthropic的Claude Code CLI客户端源码意外泄露,近51万行代码公之于众。本文带你深入了解这一事件的始末、技术细节以及其深远影响。


📌 事件概述

2026年3月31日,安全研究员 @Fried_rice 发现 @anthropic-ai/claude-code npm 包中的 cli.js.map 文件包含了完整的 sourcesContent,可以无损还原所有 4,756 个 TypeScript 源文件,代码总行数超过 512,000 行

这是一个典型的构建产物泄露(build artifact leak)安全事件,瞬间在GitHub上引发狂欢,短时间内获得12,000+ stars和18,000+ forks。


🔍 泄露的真相

发生了什么?

Anthropic在发布npm包时,意外将包含完整源码映射的source map文件一同发布。这个source map文件包含了:

  • 4,756 个TypeScript源文件
  • 57-59.8 MB 的source map大小
  • 完整的 sourcesContent 字段

通过简单的脚本,任何人都可以将这些源码还原:

const fs = require('fs'), path = require('path');
const map = JSON.parse(fs.readFileSync('package/cli.js.map', 'utf8'));
for (let i = 0; i < map.sources.length; i++) {
  const content = map.sourcesContent[i];
  if (!content) continue;
  let relPath = map.sources[i];
  while (relPath.startsWith('../')) relPath = relPath.slice(3);
  const outPath = path.join('./claude-code-source', relPath);
  fs.mkdirSync(path.dirname(outPath), { recursive: true });
  fs.writeFileSync(outPath, content);
}

好消息与坏消息

好消息 坏消息
✅ 泄露的是CLI客户端代码 ⚠️ 内部架构完全透明
✅ 不是模型权重或训练数据 ⚠️ 安全机制详细可见
✅ 不是用户隐私数据 ⚠️ 权限控制体系暴露
✅ Anthropic已紧急回退版本 ⚠️ 攻击者获得"详细地图"

📦 三个版本详解

GitHub上迅速出现了多个整合版本,方便不同需求的开发者:

01. 原始破解版

  • 来源:Janlaywss/cloud-code
  • 包含:原始npm包、还原脚本、完整源码
  • 适合:想了解还原过程的研究者

02. 学术研究版

  • 来源:Rito-w/claude-code
  • 包含:纯源码快照 + 详细架构分析文档
  • 适合:想学习Claude Code架构的开发者

03. 可运行版(推荐)

  • 来源:Rito-w/ClaudeCode
  • 包含:配好依赖和shims,bun install && bun run dev 即可启动
  • 适合:想实际运行Claude Code的人

🏗️ 技术架构亮点

技术栈

  • 运行时: Bun + Node.js >= 24.0.0
  • 语言: TypeScript
  • UI框架: React + Ink (终端UI)
  • CLI框架: Commander.js
  • 验证: Zod v4

核心系统

  1. 工具系统 - 53个工具实现

    • BashTool、FileReadTool、FileEditTool
    • AgentTool、MCPTool、GitTool
    • 等等…
  2. 命令系统 - 87个斜杠命令

    • /commit - 提交代码
    • /review - 代码审查
    • /compact - 压缩上下文
    • /mcp - MCP服务器管理
  3. 权限系统 - 四级模式

    • default: 交互式确认
    • auto: ML分类器自动审批
    • bypass: 跳过检查
    • yolo: 全部拒绝
  4. 安全防护

    • 路径遍历攻击防护
    • Unicode标准化攻击防护
    • 反斜杠注入检测
    • 敏感文件保护(.gitconfig、.bashrc等)

🔐 隐藏功能大曝光

泄露的源码揭示了Claude Code的众多隐藏功能:

编译开关控制的功能

# 协调器模式 (多Agent)
export CLAUDE_CODE_COORDINATOR_MODE=1

# 主动模式
export CLAUDE_CODE_PROACTIVE=1

# 简报模式
export CLAUDE_CODE_BRIEF=1

# 自定义模型
export ANTHROPIC_MODEL="claude-sonnet-4-20250514"

# 最大输出token
export CLAUDE_CODE_MAX_OUTPUT_TOKENS=16384

编译时特性

源码中包含 90+ 个特性开关,涵盖:

  • 上下文管理策略
  • 反幻觉机制
  • 防越狱检测
  • 语义校验与事实核查

⚠️ 安全建议

如果你在 2026年3月31日 12:21 - 3:29 UTC 期间通过npm更新过Claude Code,请立即:

  1. 检查恶意依赖:查看lock文件中是否有 axios 1.14.10.30.4,以及 plain-crypto-js 依赖
  2. 立即行动:如发现恶意版本,立即轮换所有凭证
  3. 使用官方安装:Anthropic推荐使用原生安装程序
  4. 降级版本:回退到2.1.86版本
  5. 监控账号:关注API账户异常活动

📊 关键数据一览

指标 数值
源文件总数 4,756
核心源码 ~1,906 文件
代码行数 512,000+
Source Map大小 57-59.8 MB
工具实现 53 个
斜杠命令 87 个
UI组件 148 个

💡 思考与启示

这次泄露事件给AI行业带来了诸多思考:

  1. 构建流程安全:source map等调试文件不应进入生产环境
  2. 开源 vs 闭源:Claude Code的泄露让更多人了解了AI CLI工具的内部工作机制
  3. 社区力量:短短几小时内,开发者们就完成了源码还原、版本整合、文档编写

对于普通用户而言,这次泄露没有直接安全风险,因为泄露的是客户端代码而非模型本身。但对于安全研究者和开发者来说,这无疑是一次难得的学习机会。


📚 参考资料


本文仅供技术研究学习使用,源码版权归Anthropic所有。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐