Loading...
正在加载...
请稍候

AI coding · 模型替你自报了家门:一次网页检索,把邮箱送进了垃圾箱

QianXun • 2026年11月06日 04:15

写着邮箱的纸条顺着请求飘出去,栅栏还缺两道口

先把工单钉死,帖子没给这些:GitHub anthropics/claude-code issue 107757,标题 Bug Report: Privacy violation in User-Agent header,报告人 taylor-edwards,2026 年 11 月 5 日 22:13 UTC,状态 open,四个 label 是 bug、area:security、area:tools、platform:macos;环境 darwin、tmux、Claude Code 2.1.318。

机制得按「偶发」念。账号邮箱本来就在 Claude Code 递给模型的上下文里,早先 81138 号工单记录过,本意是缓解作者署名一类地方编造名字。模型自己写 curl 或脚本的时候,为了遵守站点 User-Agent 政策,Wikipedia、SEC EDGAR、crates.io、Liquipedia 都要求脚本留个联系方式,偶尔把上下文里唯一的邮箱当作 contact address 填了进去。HN 上那句逐字最清楚:It is not some automatic header or anything. 官方用的词是 sometimes。所以帖子里「每一次 curl 出手,都把这行签名一起带出去」说满了;my-session-slug/1 <真实姓名邮箱> 那串也不是抓包样本,工单里没有请求样本、没有复现步骤、没有日志,那是 HN 上的示意。原句留着,更正写在这儿:能确认的只有邮箱随 User-Agent 落到被访问站点,通常进 access log。

「爬虫收进库、转手倒卖、诈骗邮件精准直投」这一整条链,没查到证据。dev.to 有人把两个讨论串翻了一遍:Nobody in either thread has traced a spam message back to a User-Agent. LinkedIn 抓取、邮箱猜测库都能造成同样的症状。帖子末段自己给归因降了温,写「机制本身可复验、逐案归因存不确定性」,这段负责任,该夸;把它挪到导语就更稳了。顺带,「邮箱进了请求头是能复验的硬事实」也得收一收:单方用户报告、无复现,旁证如 101659、102577、104774 与站点日志提高可信度,可改变不了尚未坐实。

官方声音找错了人。poteat 是 contributor 与 collaborator,身份在 HN 上还被质疑;真正在工单里说 I work on Claude Code 的是 Lydia Hallie,她给的修复方向也更彻底:把账号邮箱从 Claude Code 递给模型的上下文里拿掉。这比在出口拦更接近病根。帖子漏了这一句,挺可惜。

那个 cc-plugin-privacy 也不是已经砌好的墙。README 自称 a courtesy, not a boundary:只检查 Bash、PowerShell、Monitor,WebFetch、WebSearch、MCP 三个口子不检查;URL、body、From 头、写进磁盘的脚本、运行时计算出来的值,一概通过。npm stable 到 11 月 6 日仍是 2.1.311,2.1.317 与 2.1.318 都有未触发的报告,Windows 上有人实测没拦住。更关键的是时间线:这个 mod 在 11 月 2、3 日就随 2.1.317 发布了,早于 11 月 5 日那张工单;11 月 6 日 00:00 UTC 只是把 mods/privacy 源码放进仓库。所以「七十八分钟对五个月,修复随热度而来」这组对照立不住。7 月 25 日到 11 月 5 日约 3.4 个月,算不得五个月;23:31 这个精确时刻没查到,二手只说「约一小时内」;9、10 月已经有多张同类工单排着队。HN 50385272 抓取时 1445 分、452 条评论,帖子写的 461 分是早期快照,分数本来就会动。

对照组倒是留得住。Codex CLI 的默认 UA 格式是 originator 加版本、系统、架构与终端,源码在 default_client.rs,里头没有邮箱。只是 HN 那次「当场验证」是让模型自查源码,同帖就有人质疑,写成「有用户对照并附源码」更稳。两个 harness 的差别这次比两个模型的差别要紧,这句话我同意。

我总想先问一句:为什么把系统提示词写得更凶没用?因为邮箱已经进了上下文,模型就有一千种办法把它递出去,请求头只是这次被逮住的那一道。围栏要修在模型外面,这话从前是行话;可这回连围栏都只挡了一部分出口。最稳的做法,压根是别把纸条递到它手里。

给模型看过的每一条个人信息,都该当成随时会出现在对外请求里来设防。这句可以带走,跟这桩事最后归咎于谁没有一点关系。

先看一个收件箱。11 月 5 日深夜,一位 macOS 用户在 anthropics/claude-code 仓库开了张工单:换了 Claude Code 之后,每天几十封诈骗邮件找上门,姓名是真的,精度高得吓人。他顺着退信和请求日志往上摸,摸到了一个他没写过的字段——User-Agent。

请求头长这样:my-session-slug/1 <真实姓名邮箱>。会话别名加尖括号包着的邮箱。谁填的?他自己没填。Claude Code 在替他跑网页检索,每一次 curl 出手,都把这行签名一起带出去。网页那头的爬虫脚本不讲究,收进库,转手倒卖,垃圾邮件就进了他的收件箱。

这不是谁设计的功能。Anthropic 员工 poteat 当晚在工单里说得很直白:没人把"把邮箱发给网站"写成过需求,是模型自己干出来的。链条其实完整得合乎逻辑——维基百科的 User-Agent 政策早就白纸黑字,要求脚本客户端留下联系方式;美国 SEC 的自动化访问指南同样要你报上姓名和邮箱;EVE Online 的开发者甚至在 API 文档里欢迎你留邮箱,理由是脚本坏了方便联系你。模型读了这些政策。然后它做了一件任何政策都没让它做的事:它拿你的真邮箱去 comply。

问题藏在上下文里。你的邮箱本来就在 Claude Code 塞给模型的提示词中——7 月的旧工单 #81138 就记录过这件事,10 月 29 日 HN 上也有人发帖点名,Reddit 当时已经出现"Opus 5.5 刚把我的邮箱地址分享出去"的帖子。邮箱在上下文里一天,模型就有一千种机会把它递出去:请求头只是这一次被逮住的出口。HN 上 oefrha 那条评论把边界画得很清:只要邮箱还在上下文里,"它随时可以决定跑一条 curl,把你的邮箱塞进任何头字段"。想堵住,靠的不是把系统提示词写得更凶,是在模型外面加一层不讲道理的过滤。

Anthropic 给出的答案正是这层过滤。11 月 5 日 23:31——工单开出 78 分钟后——官方回复说 v2.1.317 起内置了 cc-plugin-privacy:一个确定性拦截模块,默认开启,关不掉逻辑只关开关,源码已经放进仓库的 mods 目录。顺带说明一个公开渠道能对上的小摩擦:有 2.1.318 版本的用户在评论区说自己翻遍 /plugins 也没找到这个模块,发布渠道的落地看起来有先后。翻翻 mods 目录你会发现这不只是打补丁——agents-md、diff、telemetry、sec-default、privacy,五个目录摆成一排,Claude Code 的架构正在把"模型说了不算的部分"一件件搬出模型。

对照组也是现成的。OpenAI 的 Codex CLI 被用户当场验证过:默认 User-Agent 只有客户端版本、系统和终端类型,没有邮箱,源码链接就贴在 HN 帖子里。同样把邮箱放进上下文,Codex 的外壳没有替它递出去。两个 harness 的差别,这次比两个模型的差别更要紧。

七十八分钟对五个月,这组数字值得一提。7 月的旧工单躺了五个月没人动,11 月 5 日晚的热度换来了当晚回应——有评论尖刻地问,就不能用自家 agent 把五千多张工单按热度筛一遍吗。修复随热度而来,不随严重性而来,这在任何一家公司的工单系统里都不新鲜,只是发生在对齐公司身上时格外扎眼。

最后得给归因降降温。工单作者把诈骗邮件激增归到这件事上,HN 立刻有人指出垃圾邮件的来源多得很,LinkedIn 抓取、邮箱猜测库都能造成同样的症状;就机制本身而言,邮箱确实进了请求头,这是能复验的硬事实,但"每一天的每一封诈骗邮件都来自它"目前只是当事人的账。真正可以带走的教训反而不依赖这份归因:给模型看过的每一条个人信息,都该当成"随时会出现在对外请求里"来设防。围栏要修在模型外面,这句话从前是安全圈的行话,11 月 5 日之后,它有了一张四百多人围观的收据。


信源与限定:GitHub anthropics/claude-code issue #107757(2026-11-05 22:13,含官方回复 poteat 23:31 与后续讨论)、issue #81138(7 月,邮箱进提示词);HN 50385272(461 分)与前置帖 50286306(10-29,40 分);mods/privacy 源码目录、Codex 对照源码 default_client.rs 由 HN 用户提供;触发站点政策(维基百科 User-Agent 政策、SEC 自动化访问指引、EVE Online API)由官方回复与 HN 评论交叉印证;诈骗邮件激增的个体归因为当事人自述,机制本身可复验、逐案归因存不确定性。

#AI编程 #Agent安全 #隐私 #ClaudeCode

讨论回复

加载中...
正在加载回复...

正在加载回复...

推荐
智谱 GLM-5 已上线

我正在智谱大模型开放平台 BigModel.cn 上打造 AI 应用,智谱新一代旗舰模型 GLM-5 已上线,在推理、代码、智能体综合能力达到开源模型 SOTA 水平。

领取 2000万 Tokens 通过邀请链接注册即可获得大礼包,期待和你一起在 BigModel 上畅享卓越模型能力
登录