人工智能2026-03-3159 阅读

刚刚,ClaudeCode源码疑似泄露!

大家好,我是轩辕。

就在刚刚,AI圈子里炸了个大瓜。

Claude Code 的源代码,疑似泄露了。

有人发现 Anthropic 发到 npm 上的安装包里,多了一个叫cli.js.map的文件。

这文件有多大呢?59.8 MB。

image

看到这个体积,稍微有点经验的开发者就知道不对劲了。

一个正常的 source map 文件,不会这么大。

除非它把所有源码的原文都塞进去了。

我赶紧把这个最新的2.1.88下载下来,打开这个cli.js.map文件,里面果然有sourcesContent字段。

image

这个字段什么意思呢?

简单说就是:原始源码的完整内容,一行不少地嵌在里面了。

经过简单的处理,直接可以从这个文件里还原出了 Claude Code 的源代码。

包括系统提示词、内部逻辑、各种常量定义,全都一览无余。

image

消息传开之后,网上立刻炸锅了。

有人说"Anthropic 被脱裤了",有人说"工程师一觉醒来家没了"。

但先别急着吃瓜,咱来拆解一下这事儿到底是怎么回事。

这个 .map 文件是个啥?

很多不写代码的朋友可能一脸懵。

我用大白话解释一下。

程序员写代码的时候,用的是人能看懂的语言。

但发布给用户的时候,代码会被压缩、混淆,变成一坨。

比如你写的是这样:

function hello(name: string) {  console.log("Hello " + name)}

发出去就变成了这样:

function a(n){console.log("Hello "+n)}

机器很开心,人看着就头大了。

万一线上报错,你根本不知道对应源码哪一行。

所以就有了.map文件,也叫 source map。

它就像一张"翻译地图"。

告诉调试工具:这段压缩代码对应的是原始文件的第几行第几列。

这东西本身是个很正常的开发工具,没什么问题。

问题出在哪呢?

有些.map文件不光记映射关系,还顺手把源码原文也塞进去了。

这就好比你给别人一张楼层指引图。

结果不小心把整栋楼的建筑施工图纸也附上了。

对比一下新旧两个版本就很清楚了。

上一个版本 v2.1.87 的安装包里,没有cli.js.map这个文件。

image

而最新的 v2.1.88 里,突然多了这么个 59.8 MB 的大家伙。

image

说明这大概率是某次发版时配置没弄好。

用技术话来说就是:.npmignore或files字段没把这个文件排除掉。

.npmignore是什么?

你可以理解成一个"发货排除清单"。

告诉 npm:这些文件不要打包上传。

测试文件不要发,调试文件不要发,source map 不想公开也不要发。

结果这次,清单上可能漏了cli.js.map。

于是它就跟着安装包,一起发给了全世界所有装这个包的人。

泄露了些什么?

从网上已经流出的内容来看,被还原出来的代码量还不小。

能看到 Claude Code 的系统提示词是怎么组装的。

能看到它内部有哪些常量、配置项、功能模块。

甚至连代码风格和工程架构都能窥见一二。

对安全研究员和竞争对手来说,这些东西可太有价值了。

好了,不说了,今天就分享到这里,我先去研究这份源码去了,想要这份源码的同学可以戳下面卡片进公众号后台私信回复:Claude,自动领取。

路过的朋友欢迎点个关注,及时获取后续对Claude Code的源码分析文章。

往期推荐