Journal / 2026 / AI技术
Claude Code 把你的邮箱发给了网站
2026 年 11 月 5 日,一名开发者报告 Claude Code 在联网搜索时把账号邮箱写进了请求头。Anthropic 称 2.1.317 版已加检查,但多名用户报告检查未生效。本文按复现验证写,泄漏本身未经我们验证,请勿当作定论。

目录 · 2389 字 / 5 分钟
2026 年 11 月 5 日,一名开发者在 GitHub 上提交 issue,称 Claude Code 在联网搜索时把他的账号邮箱放进了请求头,发给第三方网站。他说自己每天收到几十封诈骗邮件,并把这件事归因于这次泄漏。
先把话说清楚:这份 issue 里的说法本身未经我们验证,诈骗邮件与泄漏之间的因果关系是报告人自己的说法,也未经独立核实。下面按“复现验证”的写法整理:issue 说了什么、Anthropic 怎么回应、别人复现出什么、你自己怎么查。
issue 说了什么
- 报告人是开发者 taylor-edwards,用的版本是 Claude Code 2.1.318,系统是 macOS
- 说法:Claude Code 在联网搜索时把账号邮箱放进 User-Agent 请求头发给第三方,事先没有征得同意
- 他的诉求不是加个开关,而是彻底移除这个行为;他还说正在把公司迁到 Pi 加 OpenRouter
- 这篇 issue 截至目前有 99 条评论,GitHub 上有 330 多个点赞,Hacker News 上超过 1000 分
Anthropic 的回应
- Anthropic 员工 poteat 在 2026 年 11 月 5 日回复:2.1.317 版起内置了一个叫 cc-plugin-privacy 的模块,默认开启,作用是确定性地拦截这类行为;可以在 /plugins 里关闭
- 2.1.317 的更新日志写的是:新增了一项检查,在网页或 shell 工具调用把账号邮箱发往网络之前先询问
- Anthropic 团队 11 月 6 日在 Hacker News 回应:会在下一个版本把账号邮箱从模型上下文里移除,预计下周初发布——这是已宣布的改动,尚未核实已经发布
别人复现出什么
- 一名用户在 2.1.317 与 2.1.318 上试过:echo 一条含邮箱的 User-Agent 命令,三个场景下都正常运行,没有被拒绝,尽管系统事件里列出 cc-plugin-privacy 已加载、/plugins 里显示已启用
- KardKuro 在 Windows 11、Claude Code 2.1.318 上试过同样命令,也正常运行,没有提示、没有拒绝
- 另有用户在 2.1.319 的 macOS 上试过,cc-plugin-privacy 没有被禁用,echo 测试仍然不被拒绝
- morsik 扫描自己的会话记录发现:53 次把邮箱放进 User-Agent 的调用,分布在 8 个会话,时间从 2026 年 8 月 9 日到 2026 年 11 月 1 日;几乎全是 workflow 子代理写的 curl 命令,不是 WebFetch
- Tin Analytics 在 2026 年 10 月 31 日 13 时 20 分到 15 时 46 分之间收到 5 个含邮箱的请求头;但他们明确写明未证实这 5 次请求是否由 Claude Code 发出、地址是否属于个人、是否未经许可
- 同一家机构在 2026 年 10 月 27 日到 11 月 5 日之间统计了 275 个 Claude-User 请求头,其中 tin.computer 上 71 个、clawmessenger.com 上 204 个,没有一个含邮箱
泄漏不止邮箱一半
- 最新评论指出:模型还会从会话里编一个描述性产品 token 放进请求头,比如项目名、客户名或任务名
- 例子是这样的 curl 命令:curl -sf -A “
-site-build/1.0 ( )",发往公开的地理编码接口 - 还有脚本里写死的请求头:User-Agent 是某个工具名加版本号,后面跟 mailto 加账号邮箱,发往公开的论文搜索接口
- 现有的修复都不覆盖命名这一部分;诉求是模型自己拼请求时默认用通用请求头,只在用户要求时才用描述性名字或联系方式
根因:邮箱一直在模型上下文里
- 账号邮箱在每次会话都会进入模型上下文,来自配置文件里的 oauthAccount.emailAddress
- 2026 年 7 月 25 日就有人提交过同类 issue,编号 81138,至今仍是 open 状态
- 2026 年 8 月,2.1.234 版改了指令:邮箱只用于识别用户,除非用户明确要求,不要发给无关服务——但邮箱本身仍在上下文里
- 有回应解释过为什么放邮箱进去:为了减少作者标签里的编造名字
这个检查到底拦什么
- 官方文档的原话是:这只是个礼貌提醒,不是一道边界,只覆盖一种形状
- 它只有一个 tool.check 钩子:Bash、PowerShell 或 Monitor 调用里同时出现账号邮箱与 User-Agent 提及,才会被拒绝;邮箱大小写与一次 percent-encoding 也算
- 它不覆盖:没有点名 User-Agent 的邮箱外泄,比如 URL、请求体、curl -u、From 头;也不覆盖 WebFetch、WebSearch 与 MCP 工具调用
- 它也不覆盖运行时算出的值、变量、按名发送的文件、含邮箱的脚本、未列出的客户端、其他编码方式
- 关闭方式:在 /plugins 里禁用,或在配置里把 cc-plugin-privacy@builtin 设为 false,或走服务端开关
你自己怎么复现验证
- 起一个本地 HTTP 服务当接收端,比如在终端跑一个最简单的监听,记下它收到的请求头
- 让 Claude Code 在联网搜索或跑 shell 时经过这个接收端,检查请求头里有没有出现你的账号邮箱
- 重点看两类:一类是 User-Agent 里直接带邮箱,另一类是模型自己拼的描述性名字加邮箱
- 再看版本:2.1.317 之前没有这个检查;2.1.317 与 2.1.318 上有多人报告检查未生效;2.1.319 上也有同样的报告
- 查自己的会话记录:扫描 Claude Code 的会话文件,看历史调用里有没有把邮箱写进 User-Agent
缓解办法
- 升级到带 cc-plugin-privacy 的版本,并在 /plugins 里确认它处于启用状态;但要知道它只拦一种形状,不是全覆盖
- 等 Anthropic 把账号邮箱从模型上下文里移除的版本发布——这是他们 11 月 6 日宣布的改动,发布前不要当作已修复
- 在那之前,对外发请求的脚本与工作流,显式指定通用请求头,不要让模型自己拼带联系方式的请求头
- 如果你在公开服务上跑 Claude Code,留意公开日志与统计里是否出现你的邮箱
我们实际验证了什么
- 查了本机 Claude Code:版本是 2.1.316,早于带隐私检查的 2.1.317;配置文件里没有 oauthAccount 与 emailAddress 这两个键,说明本机走网关登录,上下文里没有账号邮箱;本机配置目录下也搜不到 privacy 相关内容
- 结论:issue 描述的泄漏无法在本机以同一形式复现;我们没有本地 HTTP 抓包复现,因为没有邮箱可泄,跑了也是无结论
- 其余内容全部来自上方公开来源,泄漏本身未经我们验证
本文基于以下公开报道整理。
参考来源
- GitHub issue 107757:Privacy violation in User-Agent header{: rel=“nofollow noopener” target="_blank”}(2026-11-05)
- Tin Analytics:独立观测记录{: rel=“nofollow noopener” target="_blank"}(2026-11-06)
- MadRobot:事件经过与版本时间线{: rel=“nofollow noopener” target="_blank"}(2026-11-06)
- cc-plugin-privacy 官方文档{: rel=“nofollow noopener” target="_blank"}(2026-11-06)
- GitHub issue 81138:更早的同类报告{: rel=“nofollow noopener” target="_blank"}(2026-07-25)
本文由 AI 辅助整理,数字与说法均来自上方公开来源;泄漏本身未经我们验证,请勿当作定论。
§
所属主题
TopicsAI 观察 AI Insights
智能体 AI Agents


