Claude Code被曝泄露用户邮箱:开发者反编译查出真相
sina qqZone renren ydCloud 0

新智元报道
![]()
每月花几十美元甚至 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 拒绝访问。

系统自带的 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 的解法是先劝模型听话。对着反编译拿出的铁证,他们随后几个月的修补过程,比漏洞本身还让人看不明白。
社区拆包追踪发现,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。这股轻浮劲当场惹恼整个评论区,尽管他后来悄悄删掉笑声,截了图的网友还是追着骂。
眼下最新版本已到 v2.1.319,命令行输入 claude update 就能升上去,但愿这个漏洞是真的补好了。
几小时后 Lydia Hallie 不得不补充承认:就算装上这个隐私插件,只要 Claude 自己写脚本去跑网络请求,插件照样拦不住;而把账号邮箱从上下文里删掉的改动,要等下周一初的常规版本才会推送。
评论区自然有人把这桩荒唐事和 Anthropic 平日的高调宣传摆到一块。这家估值万亿美元的前沿 AI 公司,一边天天说自家团队靠大模型每天合并 30000 个代码提交,写代码已不再是瓶颈;一边面对一个删掉一行代码就能解决的隐私泄漏,拖了足足大半年。
先给大模型写提示词讲道理,再给客户端写插件防自家的模型,最后告诉付费用户,彻底修好还得再等一个星期。这就是 Claude Code,真是安安又全全啊,你们有没有这样的 Agent?
参考资料:
https://news.ycombinator.com/item?id=50385272