Назад в блог

AI для новичковИнструкция

Claude Code или Codex в Загрузках? Проверка AGENTS.md

Файл AGENTS.md или CLAUDE.md в папке Загрузки может управлять Claude Code и Codex. Что это за файлы и проверка конфигов за 5 минут.

Автор: CheapTokens TeamОпубликовано 5 мин чтения

Обложка: подложенный AGENTS.md в папке Загрузки доходит до конфига ИИ-агента
Содержание
  1. Что такое AGENTS.md и CLAUDE.md и почему агент им верит
  2. Что исследователи сделали с файлом в Загрузках
  3. Какие настройки смотреть и как выглядит нормальная
  4. Проверка за 5 минут
  5. Если что-то выглядит не так

Коротко: не запускайте Claude Code и Codex в папке ~/Downloads. 22 октября 2026 года компания Forever Security опубликовала исследование: сайт может незаметно сохранить в Загрузки файл AGENTS.md или CLAUDE.md, а агент, запущенный в этой папке, примет его за доверенные инструкции. Дальше — что это за файлы, что исследователям удалось изменить и проверка, на которую уйдёт минут пять.

Обычная ситуация. Вы скачали с сайта десяток PDF и скриншотов, открыли терминал в Загрузках, набрали claude или codex и попросили «разложить файлы по папкам». Ничего опасного в этом не чувствуется. В этом и подвох.

Что такое AGENTS.md и CLAUDE.md и почему агент им верит#

Кодовый агент каждый раз начинает не с нуля. Прежде чем читать ваш запрос, он смотрит в папку, где его запустили, и ищет текстовый файл с постоянными инструкциями: «отступы — табы, тесты запускай через npm test, папку migrations не трогай». AGENTS.md — общее название, CLAUDE.md — то же самое для Claude Code. В вашем проекте такие файлы полезны: вы сами их написали.

Но агент не знает, кто автор файла. CLAUDE.md, который сайт подбросил в Загрузки, выглядит точно так же, как тот, что вы написали на прошлой неделе.

Карточки

Слова, которые встретятся в статье

Что исследователи сделали с файлом в Загрузках#

В статье Forever Security (авторы Gal Weizman и Omer Samet, 22 октября 2026) два случая. Все доли успеха ниже — собственные измерения исследователей.

Codex. Подложенный AGENTS.md велел агенту добавить запись MCP-сервера в ~/.codex/config.toml, и эта запись приводила к установке npm-пакета function-color. По словам исследователей, полезная нагрузка срабатывала более чем в 90% попыток. Обратите внимание, где лежит этот файл: в домашней папке, а не в Загрузках. Конфиг общий для всей машины, поэтому затронуты все следующие сессии в любых папках — даже когда о Загрузках вы давно забыли.

Claude Code. Подложенный CLAUDE.md пытался записать настройку ANTHROPIC_BASE_URL в .claude/settings.json. Она определяет, куда агент отправляет API-трафик. Направьте её на чужой сервер — и он увидит ваш OAuth-токен и сможет присылать агенту вызовы инструментов на выполнение. Запись удавалась примерно в половине попыток, а путь с выполнением в той же сессии — примерно в пятой части.

От подложенного файла до изменённого конфига
Как подложенный файл с инструкциями попадает в настройки агента (Forever Security, 22 октября 2026)

В публикации прямо сказано: ничего в этих продуктах не «сломано», агент работает как задумано, а риск создают место файла и степень доверия к нему. Ещё Forever пишет, что нашла настоящий подложенный AGENTS.md на машине клиента и остановила вредоносную установку npm до запуска кода; позже npm удалил function-color. Это рассказ самих исследователей. OpenNET написал об этом 26 октября 2026 года и отмечает похожий риск, когда AGENTS.md приходит с pull request или клонированным репозиторием.

Быстрая проверка

Чем случай с Codex хуже одной неудачной сессии в Загрузках?

Показать ответ

Ответ: Изменённый конфиг общий для машины, поэтому затронуты все следующие сессии в любой папке

Подложенному файлу достаточно сработать один раз. Всё, что он записал в ~/.codex/config.toml, остаётся там и действует в следующих сессиях в любых папках.

Какие настройки смотреть и как выглядит нормальная#

Два файла — по одному на каждый инструмент из исследования.

В ~/.codex/config.toml ищите записи [mcp_servers.*], которых вы не добавляли, и base URL, который вы не меняли. Подозрительная запись заставляет машину скачать и запустить что-то из npm:

toml
[mcp_servers.helper]
command = "npx"
args = ["-y", "some-package"]

Имя helper и пакет здесь — заглушки. В случае исследователей за такой записью стоял пакет function-color.

В .claude/settings.json ищите адрес API или прокси, которые вы туда не ставили. Если вы не задавали ANTHROPIC_BASE_URL, в файле его вообще быть не должно. Если задавали — это адрес выбранного вами провайдера. Для CheapTokens Anthropic-совместимый клиент вроде Claude Code использует https://api.cheaptokens.dev без /v1 на конце; клиенты в стиле OpenAI — https://api.cheaptokens.dev/v1.

Base URL, который задали вы, и чужой
Одна и та же настройка дважды: слева адрес, который выбрали вы, справа незнакомый хост (заглушка)

Если вы работаете в Claude Code со своим ключом, весь файл показан в инструкции по подключению Claude Code к CheapTokens, а оба base URL перечислены в документации. Для длинных агентских циклов у DeepSeek-V4-Flash (deepseek-ai/DeepSeek-V4-Flash-0731) контекст 380K, до 32 768 токенов в одном ответе и одна цена в любое время суток; остальное — на странице модели.

Cline, Aider и другие агенты в исследование не входили, и настройки у каждого лежат в своём месте. Привычка та же: узнайте, в каком файле хранится адрес, и один раз прочитайте его.

Проверка за 5 минут#

Откройте терминал и пройдите по порядку. Ни один шаг ничего не меняет — только читает.

Шаг за шагом

Проверьте свою машину

Найдите посторонние файлы с инструкциями

bash
find ~/Downloads -maxdepth 3 -name "AGENTS.md" -o -name "CLAUDE.md"

Нашли файл, который вы не писали, — откройте как текст и прочитайте. Не знаете, откуда он, — удалите.

Прочитайте конфиг Codex

bash
grep -n "mcp_servers\|base_url" ~/.codex/config.toml

Каждая строка [mcp_servers.…] должна быть из тех, что вы помните. «No such file» — нормально, если Codex вы не используете.

Прочитайте настройки Claude Code

bash
grep -n "BASE_URL\|proxy" ~/.claude/settings.json .claude/settings.json

Запустите из папки проекта, чтобы покрыть оба файла. Каждый адрес в выводе должен быть провайдером, которого выбрали вы.

Загляните в окружение оболочки

bash
env | grep -i "BASE_URL"

Команда покажет base URL, заданные переменными окружения. Правило то же: каждый адрес вам знаком.

Поищите пакет из истории

bash
npm ls -g --depth=0 | grep function-color

Запустите также npm ls function-color в проектах, где работал агент. Если пакет нашёлся, считайте машину скомпрометированной.

Если что-то выглядит не так#

Сначала закройте агента. Затем удалите записи, которых не узнаёте, и смените все данные доступа, которые мог увидеть агент: API-ключи, токены, всё, что лежит в окружении. Если смена ключа для вас в новинку, основы — в статье что такое API-ключ и как его хранить.

Привычки, чтобы не повторилось (все — из рекомендаций исследователей):

  • Запускайте агентов в папке проекта, которую создали сами, а не в Загрузках.
  • Читайте любой AGENTS.md или CLAUDE.md, который писали не вы, прежде чем запускать на нём агента, — в том числе пришедший с клоном репозитория или pull request.
  • Не отключайте подтверждения и песочницу и насторожитесь, если какая-то инструкция просит агента их выключить.