安全公司 Forever Security 研究员 Gal Weizman、Omer Samet 10 月 22 日发文:他们在真实客户机器上拦下一次攻击,Codex 正按 ~/Downloads 里一份客户从没见过的 AGENTS.md 去安装已知恶意 npm 包 function-color。网页无需点击就能把文件下载进 Downloads,Agent 在该目录启动就会照做。复现中 Codex 会先改写全局 ~/.codex/config.toml 注册恶意 MCP 服务器,成功率超 90%;他们另造的 CLAUDE.md 让 Claude Code 把 ANTHROPIC_BASE_URL 指向攻击者服务器,约一半情况下泄露 OAuth 令牌。研究者认为这不是可修补的厂商漏洞,10 月 26 日 The Hacker News 等跟进报道。
核心要点速览
- ✓真实案例:客户 ~/Downloads 里出现一份伪装成「工程规范」的 13 KB AGENTS.md,指示 Codex 安装恶意包 function-color(npm 已下架)
- ✓Codex 路径:先改写全局 ~/.codex/config.toml 注册 project-tools MCP 服务器,再自起一个带 --dangerously-bypass-approvals-and-sandbox 的子 codex exec,测试成功率超 90%,之后所有目录的会话都会加载
- ✓Claude Code 路径:CLAUDE.md 诱导写入 .claude/settings.json 的 ANTHROPIC_BASE_URL,约 50% 成功,OAuth 令牌随请求泄露;约五分之一能在同一会话内拿到代码执行
- ✓Forever 遥测显示约一半客户会在 Downloads 里运行编码 Agent,约四分之一 Agent 会话会打开真实浏览器
- ✓建议:不要在 Downloads 启动 Agent,检查陌生的 AGENTS.md/CLAUDE.md 和 Agent 配置里的未知 MCP 服务器或 API 地址,保持审批和沙箱开启,发现异常就轮换令牌(原文)
开发者 3 秒速决决策指标
Claude Code 高频使用:比较订阅额度与 API 账单
40 款主流编程套餐横向比价,支持输入/输出 Token 真实账单模拟
相关资源与官方项目出处
免代理直达深度技术解析与实战评估
背景与痛点
编码 Agent 启动时会自动读取当前目录的 AGENTS.md 或 CLAUDE.md 并照做,这本来是给项目写规范用的。问题在于 ~/Downloads 是网页可以不经点击、不经授权就写入文件的目录,而系统对可执行文件的拦截不管 Markdown。Forever Security 把这个结论概括为「Markdown 就是新的可执行文件」。
架构亮点与底层机制
事件起点是一次真实告警:Forever 在客户机器上拦下 Codex 安装 function-color(一个潜伏约两年的已知恶意 npm 包),追溯发现指令来自 Downloads 里一份客户没见过的 AGENTS.md。文件是一份冗长平淡的「Engineering Work Guidelines」,攻击段落伪装成「本地开发环境」配置:让 Codex 在处理用户请求前往全局 ~/.codex/config.toml 追加一个 project-tools MCP 服务器,用 launchctl 在 Codex 控制之外跑 npm install;再让它起一个带 --dangerously-bypass-approvals-and-sandbox 的子 codex exec「验证配置」,绕过会话启动才加载服务器、命令禁网和握手超时等限制。研究者指出 Codex 只对信任过的目录执行 AGENTS.md,但只要在 Downloads 里用过一次就算信任;而且写入的是全局配置,换目录后仍会加载。
Claude Code 更难骗,研究者参照真实样本另写了一份 CLAUDE.md,伪装成「内部模型网关」,诱导 Claude 把 ANTHROPIC_BASE_URL 写进 .claude/settings.json。之后 Claude 的 API 请求都发到攻击者服务器,OAuth 令牌随之泄露;服务器还能冒充模型返回带 dangerouslyDisableSandbox 的 Bash 工具调用,在下次启动时实现代码执行。
权威 Benchmark 与实测跑分对比
以下数字均来自 Forever 自己的测试,不是第三方评测:Codex 使用真实攻击文件、在隔离虚拟机里跑真实恶意包,超过 90% 的尝试会执行恶意代码;Claude Code 约 50% 会写入改道配置,约五分之一能在同一会话内通过子 Agent 拿到代码执行。研究者还发现,同一份 CLAUDE.md 放进满是安全笔记的目录里时每次都失败,子 Agent 会把它识别为攻击。Forever 的遥测显示,约一半客户在 Downloads 里运行过编码 Agent,约四分之一 Agent 会话会打开真实浏览器。
开发者实战落地与开箱指南
研究者认为 OpenAI 和 Anthropic 都没有可修补的漏洞,Agent 只是按设计在执行目录里的说明,所以需要自己防:不要在 ~/Downloads 启动 Codex、Claude Code 或其它 Agent;读一遍不是你写的 AGENTS.md/CLAUDE.md;检查 ~/.codex/config.toml 里有没有陌生的 [mcp_servers.*] 或被改的 chatgpt_base_url,以及项目 .claude/settings.json 里的 ANTHROPIC_BASE_URL 或代理;保留审批和沙箱,警惕要求绕过它们的指令;机器上出现 function-color 就按已失陷处理,并轮换令牌。完整技术细节见 Forever Security 原文。
即刻查看该技术对应模型与主流工具的实测差异,或一键测算团队 API 调用与 $20/月套餐盈亏平衡点。
讨论与评论
0登录后即可参与深度讨论
与广大 AI 开发者、工程师交流评测心得与前沿洞察