摘要 Claude Code 把登录邮箱放进模型上下文,模型有时会把它填进联网命令。2.1.317 加了发送前检查,但工程师承认仍有遗漏;截至 11 月 6 日,最新更新日志到 2.1.318,尚未列出移除邮箱的修复。
让 Claude Code 查一份资料,网站要求自动访问程序留下联系方式,它就可能在自己写的请求里填上你的登录邮箱。用户原本只想取回网页,网站却多拿到了一项个人信息:问题发生在 AI 替你决定“这条命令该怎么写”的那一步。
邮箱怎么从登录资料,跑到了网站的请求里
Claude Code 团队成员 Lydia Hallie 在 Hacker News 解释,此前有人反馈模型写作者标签时会编名字,团队便把已登录用户的账号邮箱加入了上下文,也就是模型每次调用时能看到的文字。遇到要求自动访问程序留联系方式的网站,模型自己写 curl(从命令行访问网址的工具)时,有时就把这个邮箱放进 User-Agent。这个请求头通常用来标识访问程序,接收请求的网站能看到其中的内容。
这里发生的是模型有时自行填写邮箱,不是每个请求都会固定携带邮箱。 工程师在回应中道歉,并表示将从提供给模型的上下文里移除账号邮箱。她预计下一次发布在下周初到来,这仍是修复计划,不能当成已经安装到用户电脑上的能力。

HTTP 标准 RFC 9110 对专门承载联系邮箱的 From 请求头已有隐私提醒:未经用户明确配置,用户代理不应发送这个字段。本次报告涉及的是 User-Agent,两个字段不能混为一谈;可借鉴的原则是,网站希望有人可联系,也不等于程序可以替用户公开私人邮箱。
发送前检查,与从上下文移除,是两道不同的保护
2.1.317 的更新日志写的是:网络或 shell 工具调用要把账号邮箱发到网络前,先询问用户。团队称内置的 cc-plugin-privacy 模块默认开启,可在 /plugins 中查看;公开源码对一些含账号邮箱的 User-Agent 命令会直接拒绝。无论是询问还是拒绝,都属于在执行前检查,邮箱仍可能已经进入模型生成的内容。
本次报告者使用的就是 2.1.318。🟡 同一讨论中,有用户说看不到该模块,也有人说模块已启用却没有阻止自己的测试;其中的 echo 测试不发网络请求,不能把“没拦住测试命令”写成又一次实际泄露。Lydia Hallie 也承认,现有保护不能覆盖所有情况,例如模型先写出脚本、再自行运行。

截至北京时间 11 月 6 日,本次查到的官方更新日志最新为 2.1.318,尚未列出把账号邮箱移出上下文的修复。升级有必要,但“已升级”“插件显示开启”和“所有外发路径都受保护”是三个不同判断;后一个还需要实际行为支持。
垃圾邮件的因果还没证明,邮箱暴露的问题已经值得处理
🟡 报告者把每天收到的诈骗邮件与这次暴露联系起来;Hacker News 上也有使用专用别名邮箱的人表示,没有收到垃圾邮件。这些都是用户自述,没有追踪证据能把某封垃圾邮件与某次请求对应起来,不能据此宣布 Anthropic 或接收请求的网站出售了邮箱。
🟡 另一位用户测试 SEC 接口时发现,curl 默认的 User-Agent 被拒绝,换成带邮箱的标识后能访问;他随后补充,大多数非 curl 的标识也能通过,邮箱并非必需。这个案例说明模型可能为了完成任务而补信息,但它是用户测试,不是本文独立复现,也不能推出“SEC 只有拿到邮箱才放行”。
类似担忧也不是这一天才出现。7 月 25 日已有用户报告账号邮箱被注入上下文,并描述它进入模型输出和 Git 提交的经历;这只能证明此前已有报告,不能推定团队何时确认了每一种外发路径。即使垃圾邮件的来路未明,未经同意把邮箱送到无关网站,本身也需要修正。
现在能做的,是少给数据、检查请求,并收紧网络权限
先在终端用 claude --version 看实际版本,再按安装方式更新;原生安装可用 claude update,包管理器安装按对应渠道升级,并重开会话确认版本。稳定通道可能落后于最新通道,看到“已是最新”也要核对具体版本号。在 /plugins 查看隐私模块是否存在并开启,找不到或行为不符时保留脱敏日志反馈,不把“没有弹窗”当成没带邮箱的证据。
继续检查 Agent 提议执行的联网命令,特别是 User-Agent 和其他请求头中有没有个人信息。可为 AI 工具使用专用别名邮箱,Git 提交使用 GitHub 提供的 noreply 邮箱;别名只能减轻真实地址暴露的影响,不能阻止外发,修改 Git 配置也不会抹掉历史提交里的旧邮箱。需要给网站联系人时,应由人明确选择地址。

沙箱(把程序限制在隔离边界内运行的保护)可以进一步收紧 shell 命令可访问的文件和域名,但要按实际任务设置允许域名。Claude Code 文档说明,内置网页工具、MCP 服务和 hooks 不在这个 shell 沙箱内;即使目标网站已获准,域名检查也不会自动删除请求里的邮箱。真正需要审视的是:这次任务必须给模型哪些个人信息,又允许它把哪些内容送出去。