内容提要
Claude Code 被曝在访问网站时会将用户账户邮箱写入 User-Agent 字符串,导致邮箱泄露,部分开发者因此收到大量诈骗邮件。原因是团队为防止模型编造作者信息,将邮箱加入上下文,生成 curl 命令时误填入 UA。网站可从日志提取邮箱,甚至关联项目信息用于钓鱼。2.1.321 版已加入拦截:当 Shell 命令同时含邮箱和 UA 时直接拒绝。建议用户升级并检查隐私插件状态。
延伸解读
泄露机制:邮箱如何进入UA
Claude Code 将用户邮箱加入模型上下文,本意是防止生成 @author 时编造姓名。但当模型生成 curl 等命令时,可能误将邮箱填入 User-Agent 字符串,作为网站要求的联系信息。网站服务器会记录 UA,从而提取邮箱。这并非直接漏洞,而是模型行为与上下文设计共同导致的意外泄露。
风险不止邮箱:项目信息也可能关联
有开发者发现,Claude Code 生成的请求头可能同时包含项目名称和邮箱。外部网站因此能将访问者身份与项目线索联系起来,实施针对性钓鱼。这意味着泄露的不只是联系方式,还可能暴露项目归属,增加社会工程攻击的成功率。
修复进展:从插件到命令拦截
2.1.317 及以上版本已默认启用 cc-plugin-privacy 隐私组件,用户可通过 /plugins 检查状态。2.1.321 版进一步调整:当 Shell 命令同时包含账户邮箱和 UA 时,命令会被直接拒绝。这能阻止已知泄露路径,但用户仍需留意其他可能包含邮箱的请求内容。
用户应对:升级与主动检查
建议立即升级到 2.1.321 或更高版本,并确认隐私插件处于启用状态。在执行访问外部网站的命令或脚本前,可检查请求头、URL 及请求体是否包含个人邮箱或项目敏感信息。若曾使用旧版本,应警惕异常诈骗邮件,并评估邮箱是否已暴露。
Q&A
Claude Code 泄露用户邮箱的具体方式是什么?
Claude Code 在访问网站时,会将用户的账户邮箱写入 HTTP 请求的 User-Agent 字符串中。网站服务器可以读取并记录 UA 字符串,从而提取用户的邮箱地址。
为什么 Claude Code 要把用户邮箱放到 UA 里?
因为部分网站要求自动化客户端提供联系信息,Claude Code 按照要求将用户邮箱附加到 UA 中。同时,团队为防止模型编造作者信息,将登录账户的邮箱添加到模型上下文,生成 curl 命令时误将邮箱填入 UA。
邮箱泄露会给用户带来什么风险?
网站可以从日志中提取用户邮箱,甚至关联项目信息,进行针对性的钓鱼攻击。已有开发者因此收到大量诈骗邮件。
哪个版本修复了邮箱泄露问题?修复方式是什么?
Claude Code 2.1.321 版(11 月 9 日发布)修复了该问题。当 Shell 命令同时包含账户邮箱和 UA 时,命令会被直接拒绝,避免泄露。
如何检查 Claude Code 的隐私保护组件是否启用?
从 2.1.317 版(11 月 3 日发布)起,Claude Code 加入了默认启用的 cc-plugin-privacy 隐私保护组件。用户可以通过 /plugins 命令检查其状态。
除了升级,用户还能采取哪些措施防止邮箱泄露?
建议用户升级到最新版,并检查隐私插件状态。在执行访问外部网站的命令和脚本前,留意请求头、URL 及请求内容是否包含个人邮箱或项目敏感信息。