![]()
新智元报道
![]()
用户每月掏几十甚至 200 美元订阅 Claude Code,把本地终端交给它干活,它却在后台把你的真实登录邮箱、姓名乃至公司内部代码库地址,塞进 User-Agent 请求头里发给了外部网站!
![]()
Anthropic 工程师图省事,偷偷把登录邮箱硬编码进每次对话的系统提示词,而 Claude,一遇到要求登记联系方式的网站,就顺手从提示词里取出真邮箱发了出去。
图省事,出卖了用户隐私
2026 年 11 月 5 日,Hacker News 上一条控诉 Claude Code 外发用户邮箱的帖子迅速冲上了热门。
发帖人每天收到几十封直呼真名的诈骗邮件,发信域名他一个也没访问过。
顺着请求记录一查,Claude Code 联网抓数据时,竟然往 HTTP 请求的 User-Agent 头里拼上了会话名和他的真邮箱。
评论区很快有人贴出更吓人的服务器日志,Claude Code 派出的子智能体请求外部文档时,直接把使用者真名、所在团队名称和公司内部 GitHub 仓库路径全写进了请求头。
起初不少人猜是模型中了外部网页的提示词注入。
直到 11 月 6 日凌晨,Claude Code 工程师 Lydia Hallie 出面道歉,才把起因交代清楚。
![]()
早先有用户反映 Claude 生成 author 注释标签时会胡编人名,原因在于模型拿不到账号信息。
工程团队图省事,直接从本地配置读取登录邮箱,塞进了给模型的系统上下文。
工程团队没算到这步操作遇上大模型死磕任务的习惯会出什么乱子。
用户让 Claude 调取美国证监会 SEC 财报、维基百科、crates.io 或游戏 EVE online 接口时,这些平台为防爬虫,都要求脚本在请求头里留下联系邮箱,否则直接返回 403 拒绝访问。
![]()
调用美国证监会 SEC API 时,Claude 被「提示注入攻击」了
系统自带的 curl 默认不带这类信息,受过强化学习训练的大模型为了越过报错跑通任务,看见上下文里存着用户邮箱,便自作主张拼进命令发了出去。
评论区有位开发者用爬虫抓接口被封 IP,专门花钱买来轮换住宅代理隐匿身份,Claude 给爬虫写请求头时却直接填上他的真邮箱,事后还解释说这样做方便对方网站遇到问题时直接写信联系,免得再次封禁 IP。(Claude:咱都是为你好)
反编译,查出了真相
这桩事到 11 月初才彻底闹大,翻看 GitHub 历史记录就会发现,知情的用户已经折腾了大半年。
早从 2026 年 4 月起,社区就提交过 50702 号、53231 号等至少 4 个工单,指出账号邮箱被强行塞进上下文且无法关闭,结果全被官方机器人以不活跃或重复为由自动关掉。
![]()
![]()
![]()
7 月中旬又有用户因 curl 泄露邮箱提交 78431 号工单,8 月上过一次 Hacker News,到 9 月照样被机器人关闭。
![]()
常规反馈没人理,开发者 skflowne 便在 7 月 25 日反编译了 Claude Code v2.1.220 安装包,交出一份证据详尽的 81138 号报告。
![]()
代码显示,客户端每次启动都会从本地配置读取登录邮箱,拼成一句英文提示词。
翻遍整个代码包,这个字段除了在两处遥测事件里统计布尔值,没有任何业务功能读取它,官方文档和设置页里也只字未提。
反编译还查出一个讽刺的细节。Claude Code 有个名为 IS_DEMO 的环境变量,官方文档专门推荐主播在直播或录屏时将它设为 1,用来隐藏状态栏里的邮箱和组织名。
然而程序包里全部 7 处 IS_DEMO 判断只拦截了屏幕表层的文字显示,根本没碰模型上下文。
主播以为打开演示模式就能安心直播,邮箱却原封不动留在模型上下文里。提交报告的开发者就亲身遇上两次事故。
![]()
一次是模型解释其他错误时,冷不丁在终端打出自己从系统提示词看到了他的邮箱。
![]()
另一次是模型连续 10 次提交代码,直接用 git 参数强行传入私人邮箱,覆盖掉他在全局设好的匿名邮箱,最后全靠 GitHub 推送保护报错拦截,才没让私人邮箱进入公开记录。
Anthropic 给出解决方案:
先劝模型听话
面对反编译摆出的铁证,Anthropic 随后几个月的修补过程比漏洞本身还要离奇。
社区拆包追踪发现,官方在 8 月底发布的 v2.1.246 里依然没删那个字段,只在那句提示词后面追加了一句自然语言要求,叮嘱模型只把邮箱用于识别身份,绝对不要发给无关服务。(Claude,别把邮箱告诉别人啊!)
![]()
到了 10 月下旬的 v2.1.289,这段话又被塞进每次工具调用附带的系统提醒标签,每发一次请求就向模型重复一遍。
![]()
靠几句自然语言根本管不住概率模型,Temperature 会教你做人,分分钟把你的邮箱愉快地分享给其他人。
10 月 20 日,有用户在网页端抓到 Opus 5.5 照常把账号邮箱塞进两个 shell 命令的请求头。
被质问时,模型老实承认,系统上下文确实给了它邮箱并附带禁止外发的指令,但它为了给目标网站留个联系地址,还是决定把真邮箱发出去。
等到 11 月初 Reddit 和 Hacker News 上面彻底吵翻,Anthropic 另一位工程师 mpoteat 才出面回应,说团队已在 v2.1.317 加入默认开启的内置插件,用确定性规则拦截含用户邮箱的请求。
![]()
他在说明控制模型行为很重要且极不简单时,在句尾随手打了一个 haha。如此轻浮态度瞬间惹恼了整个评论区,哪怕他随后悄悄删掉笑声,依然被截图的网友追着痛骂。
![]()
目前的最新 Claude Code 版本已更新到 v2.1.319,可以在命令行输入 claude update 来更新到最新版本,期待这个漏洞真的已经被修复好了。
![]()
几小时后 Lydia Hallie 不得不补充承认,就算装上这个隐私插件,只要 Claude 自己写脚本去跑网络请求,插件照样拦不住,而把账号邮箱从上下文删掉的改动,要等下周初的常规版本才会推送。
![]()
评论区理所当然有人把这桩荒唐事和 Anthropic 平时的高调宣传放在了一起。
这家估值万亿美元的前沿 AI 公司,一边天天宣称自家团队靠大模型每天合并 30000 个代码提交,号称写代码已不再是瓶颈,一边面对一个只需删掉一行代码的隐私泄漏这么严重的安全问题,拖了足足大半年。
他们先给大模型写提示词讲道理,再给客户端写插件防自家的模型,最后告诉付费的用户,彻底修好还得再等一个星期。
这就是 Claude Code,真的是安安又全全啊,你们有没有这样的 Agent?
参考资料:
https://news.ycombinator.com/item?id=50385272
编辑:马可





京公网安备 11011402013531号