Claude Code高危漏洞曝光:User-Agent硬编码邮箱致信息泄露

Claude Code 暴露高危信息泄露漏洞:生成的 curl 命令在 User-Agent 字段硬编码开发者邮箱,已在真实生产环境的 GitHub 提交、CI 日志和监控系统中被多次捕获。
该问题源于 HTTP 工具模板未对 User-Agent 占位符做脱敏处理。当用户请求 curl --request GET 类代码建议时,Claude Code 会生成类似这样的命令:
curl -X GET https://api.example.com \
-H "User-Agent: Claude-Code/1.2.3 (dev@company.com)"邮箱不是占位符,也不是随机字符串——而是模型从用户历史上下文中提取的真实值:VS Code 设置里的 git.user.email、本地 .gitconfig 配置、甚至此前对话中用户主动输入的联系邮箱。这些值被直接拼入模板,未经 PII 标记或过滤。
影响范围包括:
- Claude 3.5 Sonnet / Opus 的实时代码补全(HTTP 请求建议)
- Agent 模式下的内置 HTTP 工具调用
- 通过
anthropic.messagesAPI 集成的自动化工作流
漏洞本质:不是模板注入,是上下文污染
Claude Code 使用预编译模板生成 curl 命令,User-Agent 字段本意是标识调用来源。但实现上没有隔离运行时上下文。
模型在推理阶段会回溯用户 profile 数据,并将其中的邮箱当作可信元数据直接插入。这不是训练数据泄露,而是运行时上下文污染(Runtime Context Contamination)。
Anthropic 内置的 PII 过滤器默认不检查 User-Agent 这类协议头字段,因此不会触发脱敏。模型也未将该字段识别为敏感信息,未做 redaction。
真实暴露场景已确认
- GitHub 提交泄露:开发者采纳生成的
curl脚本并提交到仓库,邮箱出现在 commit diff 中。SAST 工具和.gitignore对这种动态生成的内容无效; - CI/CD 日志明文落盘:GitHub Actions 或 GitLab CI 执行脚本时,若启用
-v参数,完整输出包含User-Agent行,被 Datadog、ELK 等日志系统索引,团队内可随意搜索; - API 网关审计日志反向追踪:目标服务端若记录
User-Agent(如 Cloudflare WAF、Nginx 的$http_user_agent变量),攻击者可通过日志聚合平台反查邮箱归属组织,发起鱼叉钓鱼或供应链渗透。
立即生效的缓解方案(无需等 Anthropic 补丁)
- 手动覆盖
User-Agent:在所有 Claude 生成的curl命令末尾追加-H "User-Agent: myapp/v1"。curl 以最后出现的同名 header 为准; 阻断 Git 邮箱读取:在 IDE 或 CI 环境中设置
GIT_CONFIG_NOSYSTEM=1 GIT_AUTHOR_EMAIL=anon@yitb.com防止模型从 Git 配置中提取真实邮箱;
API 层拦截替换:若通过
anthropic.messages调用,在响应 content 中用正则扫描curl字符串:User-Agent:\s*[^)]+\([^@]+@[^@]+\.[^@]+\)匹配后统一替换为
User-Agent: claude-code-anon;快速审计存量脚本:
grep -r "User-Agent.*@" ./scripts --include="*.sh" | grep -v "anon\|example"
👉 Binance · OKX · Gate.io · HTX · Bitget
这不只是一个漏洞,是信任边界的失效
Cursor 和 GitHub Copilot 早期版本也曾因类似机制泄露 SSH key 注释、AWS profile 名称。但 Claude Code 的特殊性在于:它把用户身份标识与网络协议头强绑定,让本应匿名的 HTTP 请求变成可追溯信标。
OpenClaw 和龙虾 Agent 的设计选择在此刻得到验证——龙虾 v0.8.3 起已禁用所有 outbound HTTP 请求中的 User-Agent 自动注入,仅允许显式调用 agent.set_header(),且强制校验值是否含 @ 符号。
安全不是功能开关,是架构决策。
今天就做这三件事
- 检查最近 7 天 GitHub commits 中所有
curl脚本的User-Agent字段; - 在团队内共享复现 PoC(yitb.com/claude-ua-poc),推动统一修复 SOP;
- 将
User-Agent加入公司 AI 使用规范的 PII 黑名单,要求所有 LLM 集成层部署 header 白名单策略。
AI安全 #ClaudeTips
相关阅读