乐于分享
好东西不私藏

【小沐学AI】Claude Code源码意外泄露,竟是因为一个npm包失误

【小沐学AI】Claude Code源码意外泄露,竟是因为一个npm包失误

小沐:戈戈,我最近看到一个新闻说 Claude Code 源码泄露了?这是真的吗?戈戈:没错,Claude Code 的前端 JS 文件里附带了 Source Map,相当于把”加密的藏宝图”和”解密钥匙”一起公开了。

小沐:Source Map 是什么?为什么这么严重?戈戈:简单说,Source Map 是把压缩混淆后的代码还原成原始代码的地图。有了它,任何人都能看到未压缩的源码,这次事件给安全圈敲响了警钟。小沐:那我们赶紧围观一下现场吧,哈哈!

导读: 2026年3月31日深夜,AI圈突发震撼安全事故:Anthropic旗下Claude Code完整源码意外泄露,51.2万行TypeScript代码、超1900个文件全网扩散,起因竟是npm包发布时,误传了开发调试用的Source Map文件。这场低级失误,不仅揭开了顶级AI Agent的技术底牌,更给全行业敲响了警钟。

image

一、事件回顾:Claude Code 是怎么”泄露”的?

此次泄露并非偶然:2025年2月,Claude Code预览版就曾因同类漏洞泄露部分代码,此次迭代后仍未整改。核心失误的是,工程师发布v2.1.88版本时,未在.npmignore文件中过滤cli.js.map(Source Map文件),导致59.8MB的文件随npm包上传。

3月31日(昨天),安全研究员率先披露漏洞,由于该文件包含sourcesContent字段(嵌入完整源码),一行命令即可还原全部文件。Anthropic紧急回退版本、删除文件,但代码已被多方存档,版权仍属Anthropic,未经授权使用涉嫌侵权。

image

官方直接跳过了v2.1.88版本,发布v2.1.89版本(让人伤心的版本,哈哈)。

image

二、源码曝光:Claude Code核心亮点

泄露源码揭开其真实实力:并非终端版Claude,而是完整AI Agent工程蓝图,核心亮点如下:

  • 技术栈:Bun替代Node.js,React+Ink构建UI,兼顾性能与体验;

  • 核心模块:4.6万行QueryEngine.ts(推理核心)、40+工具模块、多智能体协调系统;

  • 隐藏功能:Kairos模式(7×24小时自主运行)、电子宠物系统(测试长时记忆)。

github上面还有源码下载仓库可以看一下。

由于 2.1.88 版本已从官方 npm 下架,直接使用 npm install @anthropic-ai/claude-code@2.1.88 会报错,你可以通过腾讯缓存镜像进行安装:

npm install -g https://mirrors.cloud.tencent.com/npm/@anthropic-ai/claude-code/-/claude-code-2.1.88.tgz

三、什么是 Source Map?

要理解这次事件,我们得先搞清楚 Source Map 是什么,以及它为什么存在。

现代前端项目在发布上线之前,通常会经历一系列的构建流程:代码会被 压缩(Minify)混淆(Obfuscate)打包(Bundle),甚至还会经过 Tree-shaking 去除冗余代码。这些操作的目的是减小文件体积、提升加载速度,同时增加逆向难度。

image

然而,这也带来了一个麻烦:当生产环境出现报错时,控制台打印的错误堆栈全是类似 a.b(c,d) 这样毫无语义的代码,开发者根本无从定位问题。

image

Source Map 就是为解决这个问题而生的。它是一个 JSON 格式的映射文件,记录了压缩后代码与原始代码之间的精确位置对应关系:哪一行压缩代码对应原始文件的哪一行、哪个变量名在原始代码里叫什么。有了它,浏览器开发者工具就能在调试时自动将压缩代码”翻译”回原始状态,极大地提升了开发调试体验。

image

可以把 Source Map 理解成一本**”编译翻译词典”**。混淆后的代码就像一篇用摩斯密码写成的文章,而 Source Map 就是那本摩斯码对照表。有了对照表,任何人都能轻松解密原文。

步骤
操作内容
执行命令/具体操作
1
准备原始代码(模拟开发源码)
新建index.ts文件,写入代码,保存至本地文件夹
2
压缩代码+生成Source Map
1. 安装压缩工具:npm install -g terser. 执行压缩命令:terser index.ts -o index.min.js –source-map “filename=’index.min.js.map’,includeSources”
3
通过Source Map还原源码
1. 安装还原工具:npm install -g source-map. 执行还原命令:source-map index.min.js.map –output index.restore.ts

问题在于,很多团队在开发阶段开启了 Source Map 生成,却在部署到生产环境时忘记关闭或隔离这个选项,导致 .map 文件被一同上传到了公开服务器。

小沐:戈戈,原来一个小小的 .map 文件,背后有这么多学问!戈戈:是的,安全就藏在这些”不起眼”的细节里。记住:生产环境的每一个配置项,都值得被认真对待。小沐:我这就去检查我们项目的部署配置!

结语

如果您觉得这些文字有一点点用处,请给作者点个赞或关个注;╮( ̄▽ ̄)╭如果您有技术问题探讨,评论处留言。//(ㄒoㄒ)//谢谢各位童鞋们啦( ´ ▽ ` )ノ ( ´ ▽ “ )っ!更多精彩文章详见:CSDN博客:爱看书的小沐微信公众号:杨小羊爱阅读