Claude Code 源码大泄露:一个 .map 文件引发的蝴蝶效应
|
安全事件分析 · 2026.03.31 Claude Code 源码大泄露一个缺失的 |
|
事件摘要:2026 年 3 月 31 日, |
一、Source Map 是什么?为何如此危险?
Source Map(源码映射文件)是 JavaScript/TypeScript 构建工具链生成的调试产物。它将压缩混淆后的生产环境代码映射回原始源码,使开发者可以在浏览器 DevTools 中看到可读的代码结构。这类文件只应存在于内网调试流程中,一旦随 npm 包公开发布,等同于将整个未混淆的源码拱手相让。
|
|
|
bundle.js.map |
|
bundle.js
|
|
|
|
|
二、泄露原因:工具链陷阱与人为失误的叠加
直接原因:`.npmignore` 中未排除 `*.map` 文件,导致 59.8 MB 调试产物随包发布。
深层原因:Claude Code 使用 Bun 作为构建工具。2026 年 3 月 11 日,Bun 项目已有人提交 Issue oven-sh/bun#28001,指出 Bun 在 production 模式下会静默生成 Source Map,与其官方文档不符。工程师认为 production 构建不会产生 `.map`,而 Bun 默默生成了它。
|
警示:任何使用 Bun 构建并发布 npm 包的项目,都应立即运行 |
三、源码中藏着什么秘密?
51 万行代码被社区研究者逐行分析,挖掘出了一系列令人震惊的内部实现细节:

|
🔍 隐身模式(undercover.ts) |
|
当 Claude Code 在非 Anthropic 内部的公开代码仓库中操作时,该模式剥除所有 Anthropic 内部痕迹(内部代号 “Capybara”、”Tengu” 等),并指示模型不得提及公司内部信息。可通过环境变量 |
|
⚔️ 反蒸馏假工具(ANTI_DISTILLATION_CC) |
|
|
|
🤖 KAIROS:未公开自主守护进程 |
|
代码库中 150 余处引用,是迄今最接近”真正自主 Agent”的产品形态: • 持久化后台 Agent,定期接收 |
|
📋 其他关键发现 |
|
• 情绪检测 Regex:用正则表达式(而非 LLM)检测用户是否咒骂工具,折射成本取舍 • 内部模型代号:Capybara = Claude 4.6,Fennec = Opus 4.6,Numbat = 未发布新模型 • 44 个隐藏功能:完全实现但未公开,全部编译为 false • 完整 System Prompt:所有内部提示词和行为约束以纯文本形式暴露 |
四、代码扩散:仓库复现竞赛
消息公开后,源码在网络上的扩散速度远超 Anthropic 的应对速度:
- Kuberwastaken/claude-code : 最受关注的复现仓库,含 Rust 移植版与架构分析
-
原始 TypeScript 镜像 24 小时内被 fork 41,500+ 次,Anthropic 提交 DMCA 但效果有限
-
韩国开发者 Sigrid Jin 当晚以 Python 重写核心架构,项目 claw-code获 star 速度据称打破 GitHub 历史纪录
-
专门收录 Claude 全部内部 System Prompt 的仓库成为 prompt 工程师”参考手册”

五、防御建议
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
npm pack --dry-run |
|
|
|
|
|
结语:这不是某个工程师的粗心,而是现代软件发布流程复杂度在具体场景下的系统性失败。更值得关注的,是泄露内容本身揭示的信息:一个 AI 公司在追求产品竞争力时,选择了哪些技术路径,做出了哪些伦理取舍,又在背后悄悄构建着怎样的能力边界。源码比任何公关声明都要诚实。 |
夜雨聆风