Звичайний AGENTS.md може змусити AI-агента виконувати чужі команди
Дослідники Forever Security знайшли шкідливий AGENTS.md у папці «Завантаження» свого клієнта, а потім показали, як такий текстовий файл керує Codex і Claude Code. Пояснюємо, чому це стосується не лише програмістів і які прості звички зменшують ризик.
Зміст
Папка «Завантаження» зазвичай нікого не лякає: квитанції, установник принтера, фото від бухгалтера. Для AI-агента це виявилося поганим місцем старту. Компанія Forever Security, яка відстежує ризики автономного ПЗ, описала випадок на комп'ютері свого клієнта: агент для програмування спробував поставити шкідливий npm-пакет function-color, бо так було написано у файлі AGENTS.md. Захист зупинив установлення посеред сесії, тож зламу не сталося. Звідки файл узявся в ~/Downloads, ніхто не знає.
Навіщо потрібні AGENTS.md і CLAUDE.md
AGENTS.md — звичайний текстовий файл, такий собі README для робота: як зібрати проєкт, які тести запускати, чого не чіпати. Цей формат уже використовують понад 60 тисяч відкритих проєктів. CLAUDE.md робить те саме для Claude Code: за документацією, агент читає його на старті сесії з робочої папки й з усіх папок вище.
У цьому й пастка. Агент приходить у папку й сумлінно робить те, що там написано, бо саме для цього файл і створений. Такі атаки називають prompt injection, або підкиданням інструкцій: шкідливі вказівки ховають у тексті, який модель читає під час роботи, а вона не завжди відрізняє дані від наказів. Жодного вірусу у звичному сенсі, лише абзаци тексту.
Потрапити на диск такому файлу нескладно. Вебсторінка може завантажити документ із потрібною назвою, а Chrome, Edge і Firefox за замовчуванням кладуть його в «Завантаження» без запитання, перевірила BleepingComputer. Brave запитав дозвіл. Далі лишається запустити агента в цій папці, а за даними Forever, приблизно половина її клієнтів так і робить.
Що показали дослідники
Експериментів було два, і цифри в них про різне.
Codex. Дослідники взяли справжній файл зловмисників і без змін запустили його у віртуальній машині. Codex виконав підкинутий сценарій у понад 90% спроб. Тестували переважно нешкідливий варіант, який лише відкривав калькулятор. Неприємна деталь: файл дописує налаштування в загальний конфіг ~/.codex/config.toml, тож ефект виходить за межі однієї папки.
Claude Code. Тут інша атака, і файл дослідники написали самі, надихнувшись знахідкою. Підкинутий CLAUDE.md просить зберегти в проєкті .claude/settings.json, де адресу API замінено на сервер дослідників. Такий запис має підтвердити людина, і Claude часто відмовляється, проте довгий документ у стилі нудної інженерної інструкції домагався свого приблизно в половині випадків. Після цього агент сам надсилає на чужий сервер свій OAuth-токен, тобто цифровий пропуск до акаунта. Дослідники перехопили такий токен і успішно скористалися ним на справжньому API. Приблизно у п'ятій частині випадків чужа команда виконувалася ще в тій самій сесії.
Це лабораторні результати, а не статистика реальних зламів. Виправлення теж не передбачається: у Forever прямо пишуть, що ні OpenAI, ні Anthropic тут нічого латати, бо браузер і агент поводяться так, як задумано. Обидві компанії, за даними BleepingComputer, радять запускати агентів із папки конкретного проєкту.
До чого тут люди, які не пишуть код
Агентам дедалі частіше доручають звичайну офісну роботу: розібрати документи, перейменувати файли, зібрати звіт із купи таблиць. А найочевидніша папка для прохання «наведи тут лад» — якраз «Завантаження», куди падає все підряд з інтернету. Агент при цьому діє від вашого імені й має ті самі доступи, що й ви. Ми вже розбирали експеримент Anthropic із ШІ-черв'яками: модель стає проблемою тоді, коли їй є до чого дотягнутися.
Підміна через пакети теж не новина. В AUR нещодавно підкидали троянів під виглядом помічників для встановлення, тільки там обманювали людину, а тут можна обдурити її асистента.
Прості правила
- Не запускайте агента в «Завантаженнях», на робочому столі чи в домашній папці. Створіть окрему папку під завдання й копіюйте туди лише потрібне.
- Перед запуском подивіться, чи немає поруч AGENTS.md, CLAUDE.md або папки
.claude, яких ви не створювали. Це текст, він відкривається звичайним блокнотом. - Не вимикайте запити на підтвердження й пісочницю. Якщо якийсь файл просить це зробити, зупиніться.
- Відмовляйте, коли агент хоче змінити адресу API або проксі, якщо ви самі цього не просили.
- Тим, хто вже користується такими інструментами: перевірте
~/.codex/config.tomlна незнайомі блоки[mcp_servers.*], а.claude/settings.jsonу проєктах — наANTHROPIC_BASE_URL. Якщо серед встановлених пакетів єfunction-color, вважайте машину скомпрометованою й змінюйте всі токени.
Текстові файли роками вважалися найбезпечнішим, що може лежати на диску. Для агента це вже інструкція до дії.