Claude Code源码泄露暴露AI工具链安全漏洞

GitHub May 2026
⭐ 14
来源:GitHubClaude CodeAnthropic归档:May 2026
Anthropic在发布Claude Code 0.2.8时意外开启内联源码映射,导致22MB的生产包变成可逆源码泄露。尽管迅速下架,但GitHub上已出现完整重构代码库,揭示了Claude的代理架构和CLI内部结构。

2025年3月,Anthropic发布了Claude Code,这是一款用于AI辅助开发的命令行工具,与Claude 3.7一同推出。该npm包基于Node.js构建,本应是生产就绪的工具。然而,版本0.2.8意外启用了`inline-source-map`功能,这一仅限开发阶段的特性将完整的源码映射直接嵌入到.mjs包中。结果是一个22MB的文件,可以轻松反向工程还原为可读源码,完全绕过了任何混淆措施。Anthropic迅速从npm中移除了所有0.2.8版本,并发布了修复问题的0.2.9版本。但损害已经造成:开发者dnakov在GitHub上发布了一个名为claude-code的仓库,包含了从0.2.8重构的完整源码。这个仓库已成为研究人员和安全审计员的宝贵资源,提供了对Claude代理架构和CLI内部机制前所未有的洞察。

技术深度解析

核心问题在于Node.js打包器如何处理源码映射。在构建生产包时,开发者通常使用单独的`.map`文件或完全禁用源码映射。`inline-source-map`会将整个源码映射作为Base64编码的数据URL嵌入到包末尾。对于一个22MB的文件,源码映射部分可能占60-70%的大小。源码映射包含原始源码、文件路径和变量名——一切重建未压缩源码所需的信息。

在Claude Code 0.2.8中,包是通过esbuild或rollup等工具构建的,Webpack配置中设置了`devtool: 'inline-source-map'`。这是开发者忘记切换至生产模式时的常见错误。生成的`.mjs`文件,只要在浏览器DevTools或Node.js调试器中打开,就会显示完整的源码树。

GitHub仓库`dnakov/claude-code`(14颗星,在撰写时每日新增0颗)提供了重构后的源码。分析显示其包含多个架构细节:

- 代理循环:核心循环采用状态机模式,使用`AgentState`枚举(IDLE, THINKING, TOOL_CALL, WAITING_FOR_USER)。每个状态根据LLM响应和工具输出进行转换。
- 工具注册表:工具定义为继承自`BaseTool`接口的类,包含`execute()`、`getSchema()`和`validate()`方法。注册表包括`bash`、`read_file`、`write_file`、`search_code`和`web_search`等工具。
- 提示构建:系统提示由多个模板文件动态组装而成,包括`agent_system_prompt.md`、`tool_descriptions.md`和`user_context.md`。模板使用Handlebars风格的占位符。
- 上下文管理:代码显示了一个复杂的上下文窗口管理系统,根据标记计数截断对话历史,采用滑动窗口方法,优先保留最近的工具输出。
- 错误处理:有有趣的重试机制,API调用采用指数退避策略,如果Claude 3.7不可用则回退到更简单的模型。

数据表:包大小对比

| 版本 | 包大小 | 包含源码映射 | 重构代码行数 | 文件数量 |
|---------|-------------|---------------------|-------------------------------|------------|
| 0.2.8(泄露) | 22 MB | 是(内联) | ~45,000 | 127 |
| 0.2.9(修复) | 4.1 MB | 否 | N/A(压缩) | 1 |
| 0.3.0(当前) | 3.8 MB | 外部.map | N/A(压缩) | 2 |

数据要点: 从0.2.8到0.2.9的5倍大小减少几乎完全归因于移除了内联源码映射。实际应用逻辑仅约4MB,意味着泄露包中的18MB纯属源码映射数据。这是一种巨大的低效性,也造成了安全漏洞。

该仓库还揭示了Claude Code使用了一个自定义的`PromptBuilder`类,通过读取`prompts/`目录构建提示。该目录包含超过30个模板文件,针对不同场景(代码生成、调试、重构)进行了优化。模板以Markdown和JSON混合编写,嵌入JavaScript表达式以实现动态内容。

关键人物与案例研究

Anthropic是此事件的主要参与者。该公司将Claude Code定位为GitHub Copilot CLI和Cursor终端代理的直接竞争对手。Anthropic的战略重点在于强调安全性和可解释性,因此此次源码泄露尤其尴尬。公司回应——在数小时内下架包——显示出其意识,但也揭示了其反应性的安全姿态。

dnakov是发布重构源码的GitHub用户,很可能是一位安全研究员或AI爱好者。该仓库描述明确表示其用途为“研究和教育目的”。这与2023年LLaMA权重通过BitTorrent泄露的类似事件相呼应,当时一款旨在受控访问的模型被广泛分发。

竞争工具

| 工具 | 公司 | 语言 | 包大小 | 开源 | 源码映射处理 |
|------|---------|----------|-------------|-------------|---------------------|
| Claude Code 0.2.8 | Anthropic | Node.js | 22 MB(泄露) | 否(但泄露) | 内联(泄露) |
| Claude Code 0.2.9+ | Anthropic | Node.js | ~4 MB | 否 | 外部.map |
| GitHub Copilot CLI | Microsoft | Go | ~15 MB | 否 | 无源码映射 |
| Cursor CLI | Anysphere | TypeScript | ~8 MB | 否 | 无源码映射 |
| Open Interpreter | 社区 | Python | ~2 MB | 是(MIT) | N/A(Python) |

数据要点: 即使修复了泄露问题,Claude Code的包大小仍大于竞争对手。这表明Anthropic捆绑了更多依赖项或拥有更复杂的代理循环。Open Interpreter(社区项目)完全开源且更小,给Anthropic带来了压力,要求其证明包的大小合理性。

行业影响与市场动态

此次事件产生了多方面的连锁反应:

更多来自 GitHub

无标题ccusage, created by developer ryoppippi, is a command-line tool designed to parse and analyze local JSONL log files gene从零到GPT:开源书籍如何手把手教你构建大语言模型由Sebastian Raschka创建的开源项目rasbt/llms-from-scratch,迅速崛起为GitHub上最受瞩目的AI教育仓库之一。它提供了一条循序渐进的、代码优先的学习路径,仅使用PyTorch,不依赖任何黑盒库,从零构pgweb:开发者真正想要的极简PostgreSQL Web客户端pgweb,一个用Go编写的开源PostgreSQL Web客户端,通过解决一个简单但持久的问题——需要一个零依赖、即开即用的数据库浏览器——悄然在GitHub上积累了超过9300颗星。与需要完整Python栈或Docker设置的pgAdm查看来源专题页GitHub 已收录 1699 篇文章

相关专题

Claude Code155 篇相关文章Anthropic154 篇相关文章

时间归档

May 20261212 篇已发布文章

延伸阅读

Claude Code架构泄露内幕:NPM映射文件如何揭开AI编程助手的技术面纱一个包含Claude Code逆向工程源码的GitHub仓库近日曝光,为研究者提供了窥探Anthropic旗下AI编程助手架构的罕见窗口。该仓库通过泄露的源码映射文件,部分重构了这款主流代码助手的实现细节,揭示了其在工程优化与设计哲学上的关Claude Code 源码泄露:深度解析 Anthropic 70万行AI编程助手架构Anthropic旗下AI编程助手Claude Code遭遇大规模源码泄露。一个意外上传至npm的57MB源码映射文件,内含约70万行专有代码,首次将这一顶尖商业AI编程系统的工程架构全貌公之于众。这既是一次重大安全事件,也为业界提供了难得Claude Code的开源暗影:社区逆向工程如何重塑AI开发格局一个在GitHub上快速崛起的代码库正汇聚社区力量,对Anthropic的Claude Code进行逆向工程,构建出这款专有模型的非官方开源镜像。这一现象既揭示了开发者对易用代码生成工具的强烈渴求,也凸显了封闭商业AI与开放社区创新之间的深Claude“文件规划”技能如何揭开20亿美元Manus工作流架构的奥秘一个实现价值20亿美元Manus收购案背后规划工作流的GitHub项目,已斩获超19,000星标,揭开了精英级AI协作的核心架构。Claude Code的“文件规划”技能展示了持久化的Markdown规划如何创建可追溯、可迭代的人机协作流程

常见问题

GitHub 热点“Claude Code Blunder Exposes Raw Source: A Security Wake-Up for AI Toolchains”主要讲了什么?

On March 2025, Anthropic released Claude Code, a command-line tool for AI-assisted development, alongside Claude 3.7. The npm package, built with Node.js, was meant to be a product…

这个 GitHub 项目在“Claude Code source code leak reverse engineering tutorial”上为什么会引发关注?

The core issue lies in how Node.js bundlers handle source maps. When building a production package, developers typically use source-map in a separate .map file or disable it entirely. inline-source-map embeds the entire…

从“How to detect inline source maps in npm packages”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 14,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。