51万行代码裸奔!ClaudeCode源码泄漏全解密

admin 2026-04-21 04:18:16 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 2026年3月31日,Anthropic的ClaudeCodeCLI工具因构建配置疏忽,将包含完整TypeScript源码的59.8MBsourcemap文件发布至npmregistry,导致51.2万行代码、1906个源文件泄露。泄露内容包含40+权限控制工具、未公开的Kairos后台助手、多Agent协调系统及未发布特性。事件暴露了发布流程中未排除调试文件、CI/CD缺乏安全检查、同一错误在2025年2月后重复发生等工程体系缺陷,为开发者提供了npm包发布前检查、构建工具配置显式关闭sourcemap、企业级系统假设代码可能被审查的安全启示。 综合评分: 88 文章分类: 数据泄露,安全建设,应用安全,供应链安全,漏洞预警


cover_image

51万行代码裸奔!Claude Code源码泄漏全解密

HackerTalk HackerTalk

黑客茶话会

2026年4月1日 10:09 山东

在小说阅读器读本章

去阅读

AI工具安全事件深度解析

51万行代码裸奔!Claude Code源码泄漏事件全解密

2026年4月1日 | 黑客茶话会

 有史以来火得最快、死得最快的 GitHub 项目诞生了。

2026年3月31日,一个构建配置的疏忽,让 Anthropic 的 Claude Code 全部源码通过 npm 的 source map 文件意外泄露。不到一小时,GitHub 上就出现了万星项目——然后被迫改名、源码全删、借尸还魂。

                   这不仅仅是一次代码泄漏,背后暴露了什么?我们详细拆解这场 AI 工具生态的”烟花事件”。

🚨 事件规模

51.2                        万行代码

1,906                        个源文件

59.8MB                        Source Map

11,300                        1小时内Star数

核心事实: 2026年3月31日,安全研究员 Chaofan Shou 在 Anthropic 的 npm 包中发现了一个 59.8MB 的 source map 文件。通过这个文件,攻击者可以完整还原出 Claude Code CLI 工具的全部 TypeScript 源码——1906 个文件、51.2 万行代码,一个不少。

🔍 怎么泄露的

根本原因很简单:一个没被删除的调试文件。

                   现代 JavaScript/TypeScript 开发中,构建工具会生成 source map 文件(.map)用于调试。这个文件的核心价值是把压缩/混淆后的代码映射回原始源码。

// Source map 里的 sourcesContent 字段直接包含了原始源文件内容 “sourcesContent”: [  “// QueryEngine.ts 的完整代码”,  “export class QueryEngine { … }” ]

                   正常发布流程中,.map 文件应该被排除。Claude Code 使用 Bun 作为打包工具,Bun 默认生成 source map。这次泄漏的直接原因:构建配置没有清理 .map 文件,把它一起发到了 npm registry。

⚠️ 历史重演:这不是第一次了。2025年2月,Claude Code 因同一原因泄漏过一次源码。一年后,同样的错误再次发生。

📦 源码里面有什么

                   看起来 Claude Code 只是一个终端 AI 助手。看源码会发现,工程复杂度远超想象。

🔧 工具系统 – 40+ 权限控制工具

                           每个能力都是独立模块:文件读写、Shell执行、代码搜索、网页访问、Jupyter编辑、MCP接口等。每个工具有 4 层权限模型(默认交互/自动决策/跳过检查/完全拒绝),风险分级系统。

🧠 KAIROS – 常驻后台助手

                           从未公开的隐藏模式。不需用户输入,能主动执行任务。有 15 秒阻塞预算限制。配备 3 个独有工具:推送文件、发通知、订阅 PR 动态。

💭 Dream 记忆系统

                           每 24 小时自动整合一次记忆文件。后台子 Agent 将新信息归档、删除过时内容、精简到 200 行以内。源码提示词:”你正在做一次梦,对记忆文件进行反思性回顾”。

🤖 Coordinator – 多 Agent 编排

                           完整的多 Agent 系统。能同时管理多个工作 Agent 并行执行。四阶段工作流:调查 → 综合 → 实施 → 验证。

🪄 ULTRAPLAN – 远程规划

                           把复杂规划卸载到远程容器。支持 Opus 4.6 模型,最多 30 分钟思考时间,3秒轮询一次结果。

🐾 Buddy – 电子宠物

                           终端里的 ASCII 宠物。18 个物种、5 个稀有度、1% 闪光概率。计划 2026 年 5 月正式上线。已经完全开发完毕。

🕵️ 内部员工保护模式

                           Anthropic 员工在公开仓库工作时自动启用。禁止在 commit 和 PR 中出现内部模型代号(Capybara、Tengu 等)、未发布版本号、项目名称。

                   入口文件 main.tsx 就有 785KB,整个代码库包含 40+ 独立工具、46,000 行查询引擎、完整 Agent 编排系统

🔐 源码里的秘密

  • 内部代号曝光: Claude Code 的项目名叫”天狗”(Tengu),大量特性开关都用 tengu\_ 前缀。
  • 快速模式的真名: 所谓”Fast Mode”内部叫”Penguin Mode”,API 端点直接写的是 claude\_code\_penguin\_mode
  • 未来模型代号: migrations 目录暴露了 Fennec(耳廓狐)——某个 Opus 版本的内部代号。
  • 计算机使用工具的代号: Computer Use 内部叫”Chicago”,基于 @ant/computer-use-mcp 实现,仅限 Max/Pro 用户。
  • 未发布特性: redact-thinking(隐藏思考)、afk-mode(离开模式)、advisor-tool(顾问工具)等头信息。
  • 账号验证机制: 每个 API 请求都带 x-anthropic-billing-header,验证来源是正版 Claude Code。

📅 事件时间线

3月26日

Anthropic CMS 配置错误,3000 个未发布资产被公开。包括关于未发布模型”Mythos”(内部代号 Capybara)的草稿文章。Fortune 报道后修复。

3月31日 00:21 UTC

npm 生态另一起事件:axios 被劫持。攻击者发布带毒版本 1.14.1,通过依赖投毒传播 RAT。2-3小时后被移除。(注:与 Claude Code 泄漏无关的独立事件)

3月31日 白天

Chaofan Shou 发现 @anthropic-ai/claude-code v2.1.88 包中的 source map 文件。整个 TypeScript 源码 51.2 万行可公开下载。

3月31日(1小时内)

GitHub 备份仓库 instructkr/claude-code 突破 11,300 star、17,300 fork。fork 数比 star 数还多——大家的第一反应是先存一份备份。

随后

GitHub 接到 DMCA 投诉。仓库改名为 claw-code,源码全部删除。开发者基于泄漏源码做 Python 重写,把原始代码变成了”开源 Agent 框架”的借口。

🚨 npm 生态同日双雷:Axios 供应链攻击

                   3月31日不仅有 Claude Code 泄露,npm 生态还发生了另一起严重事件。很多人搞混了,这里理清楚:

Axios 供应链攻击: axios 是 JavaScript 最常用 HTTP 库(周下载 1 亿+)。攻击者劫持了主维护者账号,发布了两个带毒版本:1.14.1 和 0.30.4。通过依赖注入了 plain-crypto-js 包,该包会在安装时执行脚本,投放 macOS/Windows/Linux 三平台的远程访问木马(RAT),然后自删。整个攻击时间线精密:干净版 4.2.0 建立可信度(18小时后)→ 带毒 4.2.1(20分钟后)→ 带毒 [email protected](39分钟后)→ 被发现移除(2-3小时)。

两件事完全独立:

  • axios:主动恶意攻击(账号被劫持)
  • Claude Code:被动配置疏忽(忘删 .map 文件)

😅 讽刺时刻

💬 2026年1月27日,Bun 作者 Boris Cherny 在 X 上:

                       “我们100%代码是由 Claude Code + Opus 4.5 生成的。我这两个多月一个都是 100%。我昨天发了 22 个 PR,27 个前两天,每一个都是 Claude 写的。我都不手工编辑。”

                       — Boris Cherny (@bherny)

                       📍 仅三个月后的 2026年3月31日:

                       Claude Code 源码全部泄漏。51.2 万行代码、1906 个源文件、40+ 工具系统、隐藏特性全暴露。”100% Claude Code 生成”的工具本身的源码,被互联网永久保存。

🎭 讽刺之处: 用 Claude Code 写的工具,遭遇了 Claude Code 历史上最严重的安全事故。自己打脸的效果,拉满。

🔄 后续反应与借尸还魂

                   事件发生后,李不凯在 X 上紧急提醒:Fork 了 instructkr/claude-code 的开发者,千万不要 sync upstream!——因为仓库已被删除,同步会把好不容易存下来的源码同步没了。

                   同时,仓库从”claude-code”改名为”claw-code”(去掉中文特色的”爪”),宣传变成了”Python 移植版”、”开源 Claude Code Agent 框架”。实际上就是把泄漏的 TypeScript 代码重写成 Python。

                   GitHub 也因为版权问题逐步清理了大量备份仓库。但互联网永不忘记——代码早就备份到了全球各地。

💡 工程启示

                   这次泄漏暴露的不是代码漏洞,而是发布流程的基础缺陷:

  1. npm 包发布前必检查:.npmignore 中明确排除 .map 文件;或在 package.jsonfiles 字段中明确列出需打包的文件。
  2. CI/CD 流水线补缺: 加入 source map 检查步骤。使用 npm pack --dry-run 预览打包内容。
  3. 构建工具配置: Bun 默认生成 source map,需显式关闭。
  4. 同样的坑踩两次: 2025年2月同一原因泄漏,2026年3月重复发生。说明 Anthropic 的事故审查制度可能存在问题。

🛡️ 对开发者的启示

三个层面的安全教训:

  • 个人开发者: 养成习惯——发 npm 包前跑 npm pack 预览。不让 .map.tsnode\_modules 等调试文件进生产包。
  • 企业级系统: 闭源工具的源码始终有泄漏风险。评估风险时假设代码可能被审查、数据可能被收集。
  • 安全体系: 同一类问题重复发生,说明事故根因分析不到位。要建立长期的学习机制,不只是紧急修复。

📌 结语

                   51 万行代码在公网上”裸奔”24 小时的故事告诉我们:

                   ✨ 看起来最简单的配置错误,可能暴露最核心的秘密。                    ✨ 有史以来火得最快的项目(1小时万星),也是死得最快的。                    ✨ 互联网没有真正的”秘密”——被泄漏的东西,总有人会保存下来。

                   对 Anthropic 来说,这是连续第二次因配置错误的安全事故。两次错误的共同点:都不是黑客攻击,都是工程体系的疏忽。这提醒所有 AI 工具开发者——规程看似烦琐,但往往是最后的防线。

⊙ ⊙ ⊙

本文基于公开信息整理,包括 GitHub、Hacker News、Twitter/X 等平台的讨论。                    不涉及未经授权的技术细节或敏感数据处理。

黑客茶话会

分享安全事件深度解读、攻防技术干货、供应链风险分析

Copyright © 2026 黑客茶话会


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:黑客茶话会 HackerTalk HackerTalk《51万行代码裸奔!Claude Code源码泄漏全解密》

评论:0   参与:  0