Назад до блогу

AI для початківцівПосібник

Запускаєте Claude Code чи Codex у папці Downloads? Перевірка безпеки AGENTS.md

Файл з назвою AGENTS.md або CLAUDE.md у папці Downloads може керувати Claude Code і Codex. Що це за файли та 5-хвилинна перевірка ваших конфігурацій.

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

Обкладинка: підкинутий AGENTS.md у папці Downloads потрапляє до конфігурації агента зі штучним інтелектом
На цій сторінці
  1. Що таке AGENTS.md і CLAUDE.md і чому агент їм вірить
  2. Що дослідники зробили з файлом у папці Downloads
  3. На які налаштування звертати увагу і як виглядає нормальне
  4. Перевірка на 5 хвилин
  5. Якщо щось виглядає неправильно

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

Уявіть звичайну ситуацію. Ви зберегли десяток PDF-файлів і скриншотів із вебсайту, відкрили термінал у папці Downloads, ввели claude або codex і попросили «впорядкувати ці файли». Ніщо в цьому не здається ризикованим. І саме в цьому криється підступ.

Що таке AGENTS.md і CLAUDE.md і чому агент їм вірить#

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

Однак агент не може визначити, хто написав файл. CLAUDE.md, який вебсайт підкинув у папку Downloads, виглядає точно так само, як той, що ви написали минулого тижня.

Флеш-картки

Слова, які зустрінуться в цій статті

Що дослідники зробили з файлом у папці Downloads#

Публікація Forever Security (автори Gal Weizman і Omer Samet, 22 жовтня 2026 року) описує два випадки. Усі показники успіху нижче — це власні вимірювання дослідників.

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

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 гірший за одну погану сесію в папці Downloads?

Показати відповідь

Відповідь: Змінена конфігурація є загальносистемною, тож кожна наступна сесія в будь-якій папці зазнає впливу

Підкинутий файл має спрацювати лише один раз. Те, що він записує в ~/.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-ключ і як його зберігати пояснює основи.

Звички, які не дадуть цьому повторитися, усі з рекомендацій дослідників:

  • Запускайте агентів у папці проєкту, яку ви створили самі, а не в папці Downloads.
  • Прочитайте будь-який AGENTS.md або CLAUDE.md, який ви не писали, перш ніж запускати на ньому агента, зокрема ті, що надходять через клон або pull request.
  • Тримайте запити на підтвердження та пісочницю ввімкненими й остерігайтеся будь-якої інструкції, яка просить агента їх вимкнути.