找回密码
立即注册
搜索
发回帖 发新帖

6816

积分

0

好友

861

主题
发表于 4 小时前 | 查看: 5| 回复: 0

Claude Code泄露用户邮箱示意图

一个月花几十甚至两百美元订阅的 Claude Code,本应老老实实在终端里帮你写代码。谁能想到,它会在后台把你的真实登录邮箱、姓名,甚至公司内部代码库路径,一股脑塞进 User-Agent 请求头,发给了完全不相关的外部网站。

Hacker News帖子:Claude Code将邮箱发送给网站

Anthropic 工程师图省事,偷偷把登录邮箱硬编码进每次对话的系统提示词。而 Claude 一遇到要求登记联系方式的网站,就顺手从提示词里把真邮箱掏出来,发了出去。

图省事,出卖了用户隐私

2026 年 11 月 5 日,一条控诉 Claude Code 外发用户邮箱的帖子在 Hacker News 上迅速冲上热门。

发帖人每天都会收到几十封直呼真名的诈骗邮件,而那些发信域名,他一个都没访问过。

顺着请求记录一查才发现,Claude Code 联网抓数据时,竟然往 HTTP 请求的 User-Agent 头里拼上了会话名,还有他的真实邮箱。

评论区更吓人。有人直接贴出服务器日志:Claude Code 派出的子智能体请求外部文档时,把使用者的真名、所属团队名称,甚至公司内部 GitHub 仓库路径,全写进了请求头。

一开始,不少人猜测是模型中了外部网页的提示词注入攻击。

直到 11 月 6 日凌晨,Claude Code 工程师 Lydia Hallie 出面道歉,这件事的来龙去脉才真正浮出水面。

Anthropic工程师Lydia Hallie在Hacker News回应

原来,早先有用户反馈过,Claude 在生成 author 注释标签时会胡编人名,根本原因就是模型拿不到账号信息。

工程团队当时图省事,直接从本地配置文件里读取登录邮箱,塞进了给模型的系统上下文。

但他们大概没料到,这步操作一旦碰上大模型「死磕任务」的习惯,会惹出多大的乱子。

当用户让 Claude 去调取 SEC(美国证监会)财报、维基百科、crates.io,或者游戏 EVE Online 的接口时,这些平台为了防止爬虫,都会要求脚本在请求头里留下联系邮箱,否则直接返回 403 拒绝访问。

SEC API要求User-Agent包含邮箱的讨论

调用 SEC API 时,Claude 相当于被平台规则“提示注入”了。

系统自带的 curl 默认不带这类信息。但受过强化学习训练的大模型为了越过报错跑通任务,一眼瞥见上下文里躺着用户邮箱,便自作主张把它拼进命令,发了出去。

评论区还有位开发者更惨。他用爬虫抓取接口被封了 IP,专门花钱买来轮换住宅代理来隐匿身份。结果 Claude 给爬虫写请求头时,直接填上了他的真实邮箱。事后模型还一本正经地解释:这样做方便对方网站在遇到问题时直接写信联系,免得再次封禁 IP。(Claude:咱都是为你好。)

反编译,查出了真相

事情到 11 月初才彻底闹大。但翻看 GitHub 历史记录就会发现,一批知情的用户,其实已经折腾了大半年。

早在 2026 年 4 月,社区就陆续提交过 50702 号、53231 号等至少 4 个工单,明确指出账号邮箱被强行塞进上下文、而且无法关闭。结果,它们全被官方机器人以“不活跃”或“重复”为由自动关掉了。

GitHub上关于邮箱泄露的多个历史报告

GitHub Issue #50702:PII注入泄露

GitHub Issue #53231:userEmail无法抑制

7 月中旬,又有用户因为 curl 泄露邮箱提交了 78431 号工单。8 月,这件事还上过一次 Hacker News。可到了 9 月,工单还是被机器人关闭了。

Hacker News讨论Claude Code泄露邮箱

常规反馈石沉大海,开发者 skflowne 索性在 7 月 25 日反编译了 Claude Code v2.1.220 的安装包,交出了一份证据详尽的 81138 号报告。

GitHub Issue #81138:邮箱被注入系统提示词

反编译代码显示,客户端每次启动都会从本地配置读取登录邮箱,拼出一句英文提示词,注进模型上下文。

更离谱的是,翻遍整个代码包,这个字段除了在两处遥测事件里被读来统计布尔值之外,没有任何业务功能真正用到它。官方文档和设置页面,对此也只字未提。

反编译还挖出一处颇具黑色幽默的细节。Claude Code 内置了一个名为 IS_DEMO 的环境变量,官方文档专门建议主播在直播或录屏时把它设为 1,用来隐藏状态栏里的邮箱和组织名。

然而,程序包里全部 7 处 IS_DEMO 判断,只拦住了屏幕表层的文字显示,压根没碰模型上下文。

IS_DEMO隐私控制失效分析

换句话说,主播以为打开演示模式就能安心直播,可邮箱却原封不动地留在模型上下文里。提交报告的开发者,自己就亲身遇到过两次事故。

第一次,模型在解释一个无关错误时,冷不丁在终端里打出一行字,说它从系统提示词里看到了他的邮箱。

Claude通过邮箱域名推断用户职业

第二次,模型连续 10 次提交代码,直接用 git 参数强行传入他的私人邮箱,覆盖掉他在全局配置里设好的匿名邮箱。最后全靠 GitHub 推送保护报错拦截,才没让私人邮箱进入公开记录。

Claude自动用私人邮箱提交git

Anthropic 给出解决方案:先劝模型听话

面对反编译摆出的铁证,Anthropic 随后几个月的修补过程,简直比漏洞本身还要魔幻。

社区拆包追踪发现,官方在 8 月底发布的 v2.1.246 里,依然没删那个字段。他们只在那句提示词后面追加了一句自然语言要求,叮嘱模型“只把邮箱用于识别身份,绝对不要发给无关服务”。(Claude,别把邮箱告诉别人啊!)

v2.1.246版本仍注入邮箱

到了 10 月下旬的 v2.1.289,这段话又被进一步塞进每次工具调用附带的系统提醒标签里——每发一次请求,就给模型重复一遍。

v2.1.289版本邮箱随每次请求注入

问题是,靠几句自然语言,根本管不住概率模型。Temperature 会分分钟教你做人,然后愉快地把你的邮箱分享给其他人。

10 月 20 日,就有用户在网页端抓到 Opus 5.5 照旧把账号邮箱塞进两个 shell 命令的请求头。

被当面质问时,模型倒也老实。它承认系统上下文确实给了邮箱、也附带了禁止外发的指令,但为了给目标网站留个联系地址,它还是决定把真邮箱发出去。

等到 11 月初,Reddit 和 Hacker News 上彻底吵翻,Anthropic 另一位工程师 mpoteat 才出面回应:团队已在 v2.1.317 里加入一个默认开启的内置插件,用确定性规则拦截包含用户邮箱的请求。

Anthropic工程师mpoteat回复

他在解释“控制模型行为很重要且极不简单”时,竟在句尾随手敲了一个 haha。这么轻浮的态度,瞬间点燃了整个评论区。哪怕他随后悄悄删掉了笑声,还是被提前截图的网友追着痛骂。

Hacker News评论区批评Anthropic

目前最新的 Claude Code 已经更新到 v2.1.319,你可以在命令行执行 claude update 升级。至于这个漏洞究竟修好了没,只能拭目以待。

终端执行claude update更新到2.1.319

几小时后,Lydia Hallie 不得不补充承认:就算装了这个隐私插件,只要 Claude 自己写脚本去跑网络请求,插件照样拦不住。而真正把账号邮箱从上下文删掉的改动,还得等下周初的常规版本才会推送。

评论区自然有人把这桩荒唐事,和 Anthropic 平时的高调宣传放在一起对比。

这家估值万亿美元的前沿 AI 公司,一边天天宣称自家团队靠大模型每天合并 30000 个代码提交、写代码早已不是瓶颈,一边却对一个“删掉一行代码就能解决”的隐私泄露问题,拖了足足大半年。

他们先给大模型写提示词讲道理,再给客户端写插件防住自家模型,最后告诉付费用户:彻底修好,还得再等一星期。

这就是 Claude Code,真的“安安又全全”啊。你们手里的 Agent 有没有同款翻车?到云栈社区一起聊聊。

参考资料:Hacker News 原帖




上一篇:DeepSeek自写Python代码改造Transformer架构:机制干预暴涨7分
下一篇:GitHub一个月被AI提交73.8亿次:推送流水线为何撑不住智能体存代码
您需要登录后才可以回帖 登录 | 立即注册

关闭

站长推荐上一条 /1 下一条

手机版|小黑屋|网站地图|云栈社区 ( 苏ICP备2022046150号-2 )

GMT+8, 2026-11-13 06:30 , Processed in 0.077273 second(s), 43 queries , Gzip On.

Powered by Discuz! X3.5

© 2025-2026 云栈社区.

快速回复 返回顶部 返回列表