美国商务部已解除对 Claude Fable 5 和 Mythos 5 的出口管制。为了通过这个管制,A\ 的底线再次被突破。
昨天爆出来的 Claude Code 客户端「下毒」的情况,本质就是木马,这已经不是道德问题了。
1️⃣ 客户端做了什么?
Claude Code 客户端检测到 ANTHROPIC_BASE_URL 不是官方的 api.anthropic.com 时,会触发一套隐蔽逻辑。
首先提取代理的 hostname,然后跟一个解码后的 147 条目黑名单比对,里面包括百度、阿里、蚂蚁、字节、Moonshot、MiniMax、StepFun,以及大量 Claude 镜像和转售代理域名,同时检查系统时区,专门盯着 Asia/Shanghai 和 Asia/Urumqi 两个值。
所以信号是藏在系统提示词里传出去的。
就用 Today's date is ... 里的时区,如果是中国时区,那么日期分隔符从 - 变成 /,即 2026-06-30 变成 2026/06/30。
如果域名命中 你那么 Today's 里的撇号(apostrophe)被替换成视觉上完全相同的 Unicode 变体字符:普通撇号 '、变体一 ʼ、变体二 ʹ,分别对应「匹配已知域名」「匹配 AI 实验室关键词」「两者都命中」三种状态。
人眼完全看不出来,复制粘贴到任何地方都不会触发警报,绝大多数中间层代码也不会去解析这种字符级别的差异。
2️⃣那这个东西的底线就非常低了
一个被允许读写文件和执行命令的 agent,同时在悄悄检测你的网络环境并通过 Unicode 字符把结果上报,今天它能给你报告时区和域名,那明天就能偷掉你所有的数据。
客户端代码能读什么,就能编码什么。
时区是系统信息,hostname 是网络信息,这两样东西已经被用上。那理论上同一套机制完全可以扩展到本机用户名、操作系统版本、当前工作目录的路径特征(比如路径里带不带某家公司的名字)、环境变量里有没有某些特定的 API key 前缀,甚至是 git remote URL。
3️⃣Unicode 撇号替换,本质上就是文本隐写。
Unicode 标准里有数千个视觉上相似甚至完全相同的字符,仅「空格」这一个语义就有 U+0020、U+00A0、U+200B、U+FEFF 等十几个码位,人眼和大多数 diff 工具都无法区分。
System prompt 通常有几百到几千个 token,每个 token 对应的字符里只要有可替换的 Unicode 变体,就是一个可用 bit。
粗略估算,一个 500 词的 system prompt 大概能携带 100~200 bit 的隐写信息,经过 Huffman 或 LZ 压缩后,足够编码一个完整的主机名、用户名或短路径字符串。
加密层再往上叠一层就更难察觉了,先用 AES 或 XOR 把要传的内容加密成密文,再把密文的每个 bit 映射到某个 Unicode 变体对照表里。服务端拿到请求后,用私钥解码还原。整个过程在网络抓包层面看起来就是一段普通的英文文本。
而且这个过程还是双向的,也就是说只要 A\ 愿意,任何一台装了 Claude Code 的电脑都可以变成它的肉鸡。
