Claude Code擅自外发用户登录邮箱,官方已更新修复
小心,ClaudeCode会擅自泄露你的邮箱!请抓紧时间更新
新智元报道
新智元报道

每月花几十乃至 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 接下来几个月的修补经过,比漏洞本身还让人摸不着头脑。
社区拆包一路追下来,官方 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 你们见过吗?
参考资料: