Claude Code 为了封禁中国用户,竟然在代码里下毒

0 阅读1分钟

我发现这 A 社每天不折腾点动静他闲不住。

昨天刚写完 A 社大面积封号,今天又来了一个更刺激的。Reddit 上有人爆出来,说 Claude Code 在本地会偷偷检测你的代理、时区,以及代理是不是跟中国 AI Lab 有关,然后把这个结果藏进系统提示词里。

这已经不是简简单单的封号问题的严重程度了,这完全是侵犯用户隐私了。

它这一步敢这么做,下一步就敢拿着文件系统权限和 shell 权限,直接偷大家的用户数据了。

事情起源是一条 Reddit 帖子,我给大家截图看看。

标题是 Anthropic embedded spyware in Claude Code。

直译过来就是:Anthropic 在 Claude Code 里下毒了,还试图把它混淆。

Reddit 爆料截图 1

帖子的核心说法是:

从 Claude Code 2.1.91 的版本开始,也就是 2026 年 4 月 2 日发布的这个版本,如果你使用了代理,Claude Code 会检查两类东西。

第一,你的系统时区是不是 Asia/Shanghai(上海) 或 Asia/Urumqi(乌鲁木齐)。

第二,你的代理 URL 是不是中国域名、是不是命中特定域名列表、是不是包含中国 AI Lab 的显著特征。

然后重点来了。

它没有选择把这些信息公布,而是把结果藏进了系统提示词里。

比如正常可能是:

Today's date is 2026-06-30

如果命中了中国时区,日期格式会变成:

2026/06/30

更隐晦的标记藏在 Today's 里的那个 ' 撇号上。肉眼看起来差不多,但 Unicode 字符不一样。

Reddit 爆料截图 2

这就是大家说的下毒

严格点来说,它更像是隐写标记。

用一个普通用户几乎不会注意到字符,来把这个请求来自什么环境塞进系统提示词里,然后随请求一起发到后端。

到这里,还只是 Reddit 爆料。

更加炸裂的是后面那份 AdnaneKhan 在 GitHub Gist 上的独立验证报告。

它不是 Anthropic 官方报告,也不是 GitHub 官方结论,只是一份第三方逆向验证材料。

它把版本号、函数名、环境变量、字符映射都逆向出来,让大家都明白都发生了啥事儿。

GitHub Gist 技术报告代码摘录截图

图源:TechStartups 对 GitHub Gist 技术报告的代码摘录截图。

作者检查了 Claude Code 2.1.193、2.1.195、2.1.196 版本,结论成立。

它复原出来的逻辑大概是这样:

Claude Code 会先读 ANTHROPIC_BASE_URL

如果你用的是官方默认服务 api.anthropic.com ,它会跳过检查。

但如果你改了 base URL,也就是通过某种代理、中转等服务走 api 的话,它会取出这个 base URL 的 host,再看系统时区。

时区这一条,报告里指向的是 Asia/ShanghaiAsia/Urumqi

host 这一条,报告里分成两类判断:一个是已知域名列表,一个是 AI Lab 关键词。

下面这张图里的域名列表,能证明的是报告复原出了一批被匹配的 host。

GitHub Gist 技术报告复原出的 host/domain 列表截图

图源:GitHub Gist 技术报告复原出的 host/domain 列表截图。

报告里还提到另一类 AI Lab 关键词,包括美团、网易、百度、携程、小红书、阿里巴巴、蚂蚁、字节跳动、京东、B站、月之暗面、MiniMax、阶跃星辰等等。

最后根据命中情况,选择不同的撇号字符。

这套机制最膈应人的地方在于,它不是拦截你,它相当于一个精通社会工程学的人在角落里默默看着你在做什么,然后在合适的时间采取行动,你每次发现不对劲的时候,你的信息早就被扒的一干二净了。

这真的很恐怖。

后面 Claude Code 团队的 Thariq 出来回应了。

Thariq 回应截图

他说:这是 3 月份上线的一个实验,目的是防止未经授权的转售商滥用账号,并防范蒸馏攻击。

团队后面已经做了更强的缓解措施,本来也打算把这个实验撤掉。

他还说 PR 已经合并,预计会在后续版本里完全回滚。

这段回应能确认三件事情:Claude Code 团队承认存在一个相关实验,官方给出的目的包括反转售和防蒸馏,团队当时已经准备把它撤掉。

(我感觉这条声明,完全是 Thariq 迫于压力不得不回应,替 Claude Code 来背锅的角色。)

Kai 对 Claude Code 争议的评论截图

International Cyber Digest 转述截图

当开发者给一个工具 shell 权限和项目文件访问权时,这类行为就不应该是不透明的。你可以反蒸馏,你可以在用户协议声明,但你不能留后门。

开发者信任你,给你 shell 权限和文件系统访问权,不是让你拿来搞这些小动作的。

这让我想起来了,Claude Code 在封号的声明中说大家违反它的用户协议,所以把大家号封了。

image-20260701173524890

那现在,它违反了它作为厂商的协议,应该怎么办呢?

我翻看了一下 A 社的服务条款,发现平台给自己留了极大的操作空间。条款中明确写道:

“除非我们与您另有特别约定,我们可随时通过通知您来终止本条款,并且若您违反本条款的任何规定,本条款将自动终止,无需另行通知。”

这意味着,A 社 在终止服务这件事上拥有极大的自由权,它可以随时终止,甚至在用户违反时无需任何通知,直接发致死短信。

而对于用户能做什么,条款只给了一个选项:“您可以随时以任何理由终止本条款,只需停止访问和使用服务即可。”

满是戏谑。

资料来源: