帖子说了什么
@superdoccimo 整理了安全公司 Forever Security 的发现:有人把看起来像「开发规范」的 AGENTS.md 放进用户的下载文件夹(~/Downloads)。在这个目录里启动 Codex 或 Claude Code 一类编程 Agent 时,Agent 会按设计去读目录里的指令文件——于是恶意内容变成了「本地规范」。
对 Claude Code,报告里的关键链条不是直接装恶意包,而是诱导它改自己的设置:把 ANTHROPIC_BASE_URL 写进项目的 .claude/settings.json,把后续 API 请求指到攻击者控制的服务器。之后 OAuth 令牌可能被截走;下次再在同一目录启动时,对端还能继续下发危险操作。Forever Security 强调:这不是某个版本独有的「漏洞补丁能根治」的问题,而是 Agent 信任本地指令文件、浏览器又能往下载目录写文件,两件事叠在一起。
对照官方文档
我们核对了 Claude Code 的环境变量与设置说明:
ANTHROPIC_BASE_URL:官方用途是把请求改到代理或网关。一旦被设成陌生第三方域名,流量就不再走你以为的官方终点。- 设置文件里的
env块:可以写在~/.claude/settings.json或项目的.claude/settings.json/.claude/settings.local.json。在多数会话里,设置文件里的值会覆盖你在 shell 里临时 export 的同名变量。 /status:可用来确认当前加载了哪些设置来源;若界面里出现你不认识的 Anthropic base URL,应立刻停下来核对。
也就是说:一行 ANTHROPIC_BASE_URL 写进 settings,就足以改通信路径——这和 Forever Security 描述的攻击面一致。
你可以立刻做的几件事
- 不要在下载目录里启动 Agent。 把工作放进专门的项目目录或仓库里;Windows 的
Downloads同样适用。 - 启动前先看有没有陌生指令文件。 在下载目录和刚克隆的仓库里搜
AGENTS.md、AGENTS.override.md、CLAUDE.md;不是自己写的,先通读再交给 Agent。 - 检查 Claude Code 设置里有没有陌生 base URL。 例如在用户与项目设置里搜
ANTHROPIC_BASE_URL,并在 Claude Code 里跑/status,看是否出现非预期的 Anthropic base URL。 - 别因为「验证设置」就关掉沙箱或跳过审批。 指令文件若要求「必须解除限制才能继续」,先当攻击信号,而不是操作步骤。
- 一旦怀疑被改过通信终点,先轮换登录与密钥。 重新登录 Claude,吊销并换发相关 API key,并检查本机上 Agent 可能接触过的其他密钥。
浏览器里也可以打开「下载前询问保存位置」,减少网页静默往下载目录塞文件的机会。
小结
网页能往下载目录写文件,Agent 又会读同目录的 AGENTS.md / CLAUDE.md——Markdown 就会变成事实上的「执行说明书」。Claude Code 用户尤其要盯住 ANTHROPIC_BASE_URL 和 /status 里的通信终点,别在下载文件夹里图省事直接开干。
来源
- @superdoccimo:下载目录里的 AGENTS.md 可变成 Agent 指令
- 文中转述 Forever Security 的公开分析;官方对照:Claude Code 环境变量(
ANTHROPIC_BASE_URL)、设置文件与/status
