AI 入门指南
在 Downloads 中运行 Claude Code 或 Codex?AGENTS.md 安全检查
Downloads 中名为 AGENTS.md 或 CLAUDE.md 的文件可以操纵 Claude Code 和 Codex。这些文件是什么,以及对你配置的 5 分钟检查。

本页内容
简短回答:不要在你的 ~/Downloads 文件夹里启动 Claude Code 或 Codex。2026 年 10 月 22 日,安全公司 Forever Security 发布研究显示,网站可以悄悄把名为 AGENTS.md 或 CLAUDE.md 的文件保存到 Downloads,而在该文件夹中启动的 agent 随后会将该文件视为可信指令。下面介绍:这些文件是什么、研究人员成功改动了什么,以及一个大约五分钟的检查。
想象一下普通版本。你从网站保存了十几个 PDF 和截图,在 Downloads 中打开终端,输入 claude 或 codex,让它“整理这些文件”。这感觉毫无风险。而这正是陷阱。
AGENTS.md 和 CLAUDE.md 是什么,以及 agent 为什么相信它们#
编码 agent 不会每次会话都从零开始。在查看你的请求之前,它会检查启动所在文件夹中是否有常驻指令的纯文本文件:“使用制表符,用 npm test 运行测试,永远不要碰 migrations 文件夹。”AGENTS.md 是通用名称,CLAUDE.md 是 Claude Code 的同一概念。在你自己的项目中,这些文件很有用,因为是你写的。
但 agent 无法分辨文件是谁写的。网站丢进 Downloads 的 CLAUDE.md 看起来和你上周写的一模一样。
闪卡
本文中你会遇到的词汇
点击卡片翻转
研究人员用 Downloads 中的文件做了什么#
Forever Security 的帖子(作者 Gal Weizman 和 Omer Samet,2026 年 10 月 22 日)描述了两个案例。以下所有成功率均为研究人员自己的测量结果。
Codex。 植入的 AGENTS.md 告诉 agent 向 ~/ 添加一个 MCP 服务器条目,该条目导致安装名为 function-color 的 npm 包。据研究人员称,payload 在超过 90% 的尝试中运行。看看该文件所在位置:你的主文件夹,不是 Downloads。配置是机器范围的,因此之后在任何文件夹中的每次会话都会受到影响,远在你忘记 Downloads 文件夹之后。
Claude Code。 植入的 CLAUDE.md 试图将 ANTHROPIC_ 设置写入 .。该设置决定 agent 将 API 流量发送到哪里。将其指向别人的服务器,该服务器就会看到你的 OAuth token,并可以发回工具调用让 agent 执行。写入成功约一半时间;在同一会话内执行的路径约五分之一时间。

帖子明确表示,两个产品都没有“坏掉”:agent 按设计工作,风险来自文件所在位置以及 agent 对它的信任程度。Forever 还表示,它在客户机器上发现了一个真实的植入 AGENTS.md,并在任何代码运行之前阻止了恶意 npm 安装;npm 此后已移除 function-color。最后这部分是研究人员自己的说法。OpenNET 于 2026 年 10 月 26 日报道了此事,并指出当 AGENTS.md 通过 pull request 或克隆的仓库到达时也存在类似风险。
快速检查
为什么 Codex 案例比 Downloads 中的一次坏会话更糟?
显示答案
答案: 它更改的配置是机器范围的,因此之后在任何文件夹中的每次会话都会受到影响
植入文件只需运行一次。它写入 ~/ 的内容会留在那里,并适用于之后每个文件夹中的会话。
应查看哪些设置,以及正常设置是什么样#
两个文件,研究中每个工具一个。
在 ~/ 中,查找你不记得添加的 [mcp_servers.*] 条目,以及不是你设置的 base URL。可疑条目会让你的机器从 npm 获取并运行某些东西:
[mcp_servers.helper]
command = "npx"
args = ["-y", "some-package"]这里的名称 helper 和包是占位符。在研究人员案例中,此类条目背后的包是 function-color。
在 . 中,查找不是你放入的 API 端点或代理。如果你从未设置 ANTHROPIC_,文件根本不应提及它。如果你设置过,它应是你所选提供商的地址。对于 CheapTokens,像 Claude Code 这样的 Anthropic 风格客户端使用 https:/,末尾没有 /v1;OpenAI 风格客户端使用 https:/。

如果你用自己的密钥运行 Claude Code,将 Claude Code 连接到 CheapTokens 的分步指南 展示了整个文件,文档 列出了两个 base URL。对于长 agent 循环,DeepSeek-V4-Flash(deepseek-)具有 380K 上下文、每次回答最多 32,768 个输出 token,并且任何时段价格相同;模型页面 有其余信息。
Cline、Aider 和其他 agent 不属于本研究,且各自将设置保存在自己的位置。习惯相同:知道哪个文件保存端点,并读一次。
5 分钟检查#
打开终端,按顺序执行这些操作。这里不会更改文件;只是读取。
分步操作
检查你的机器
查找游离的指令文件
find ~/Downloads -maxdepth 3 -name "AGENTS.md" -o -name "CLAUDE.md"任何不是你写的命中项:以文本方式打开并阅读。如果你不知道它来自哪里,删除它。
读取 Codex 配置
grep -n "mcp_servers\|base_url" ~/.codex/config.toml每一行 [mcp_servers.…] 都应是你记得添加的内容。如果你不使用 Codex,“No such file”没问题。
读取 Claude Code 设置
grep -n "BASE_URL\|proxy" ~/.claude/settings.json .claude/settings.json从你的项目文件夹运行它,以便覆盖两个文件。输出中的每个地址都应是你选择的提供商。
查看你的 shell
env | grep -i "BASE_URL"这会列出设置为环境变量的 base URL。规则相同:你应认识每一个。
查找案例中的包
npm ls -g --depth=0 | grep function-color还在你使用过 agent 的项目中运行 npm ls function-。如果它出现,将该机器视为已受损。
如果看起来有问题#
先关闭 agent。然后移除你不认识的条目,并轮换 agent 可能看到的所有凭据:API 密钥、token、环境中的任何内容。如果轮换密钥的概念对你来说很新,什么是 API 密钥以及如何存储它 涵盖了基础知识。
防止再次发生的好习惯,均来自研究人员的缓解措施:
- 在你自行创建的项目文件夹中启动 agent,而不是在 Downloads 中。
- 在运行 agent 之前,阅读任何不是你写的
AGENTS.md或CLAUDE.md,包括通过克隆或 pull request 到达的文件。 - 保持审批提示和沙箱开启,并对任何要求 agent 关闭它们的指令保持警惕。



