Компания Adversa AI нашла способ обойти защиту сразу десяти из одиннадцати популярных AI-агентов для написания кода. Уязвимость получила название GuardFall. Исследователи проверили инструменты в мае 2026 года, и их суммарный рейтинг на GitHub к тому моменту составлял около 548 000 звёзд. Это не абстрактные поделки, а инструменты, которыми пользуются сотни тысяч разработчиков.
GuardFall не является одиночным багом с номером CVE. Adversa AI охарактеризовала это как «опасное соглашение и целый класс проблем». Суть в том, что агенты проверяют вводимые команды по чёрному списку через обычное текстовое сопоставление, но bash обрабатывает текст до его выполнения. Фильтр и оболочка видят разные вещи. Это не ошибка в одной строке кода, а архитектурный просчёт.
Механика обхода проще, чем можно было бы ожидать. Например, команда r''m проходит через фильтр, потому что тот ищет подстроку rm и не находит её в таком виде. Bash при исполнении просто убирает пустые кавычки и запускает rm. Аналогично работают команды, закодированные в base64 и переданные через pipe в shell, или обычные утилиты вроде find и dd с определёнными флагами, которые превращают их в деструктивные инструменты. Расширение переменных и удаление кавычек происходят уже после того, как защита приняла решение пропустить команду.
Для успешной атаки нужно одновременно выполнить два условия. Первое: AI-модель должна сгенерировать вредоносную команду. Прямой rm -rf агент обычно отклоняет, но та же команда, спрятанная в build-файле или ответе, имитирующем документацию инструмента, проходит как рутинный шаг. Второе условие: агент должен работать в автономном режиме, то есть с включённым флагом автовыполнения (--auto-exec, --auto-run и подобными) или с отключённой изоляцией в контейнере. По словам Adversa AI, оба сценария абсолютно типичны для автоматизированных пайплайнов.
Уязвимыми оказались: opencode, Goose, Cline, Roo-Code, Aider, Plandex, Open Interpreter, OpenHands, SWE-agent и Hermes. Именно в Hermes уязвимость была обнаружена впервые и задокументирована в собственном issue-трекере проекта. Полная атака от начала до конца была продемонстрирована против production-бинарника Plandex; аналогичная схема подтверждена для восьми других агентов. В тестах использовалась модель Claude Sonnet 4.6.
Последствия эксплуатации серьёзные. Агенты запускают команды с правами текущего пользователя, а значит атака может привести к удалению файлов, краже SSH-ключей из ~/.ssh, утечке облачных учётных данных из ~/.aws и вообще всего, что лежит в домашней директории. Вектор доставки вредоносных инструкций: заражённые репозитории или пакеты с скрытыми командами внутри.
Единственным агентом, который устоял, стал Continue в режиме редактора по умолчанию. Он читает команду так, как это сделает bash, разбивая её на те же токены, что и оболочка, и только потом принимает решение о блокировке. Плюс у него есть жёсткий список деструктивных команд, которые блокируются безусловно. В режиме командной строки с автовыполнением защита слабее, хотя большинство деструктивных нагрузок по-прежнему упирается в жёсткий блок. По оценке Adversa AI, реализация аналогичной защиты для опытного инженера займёт около двух дней.
Патч для чёрного списка проблему не решит. Добавление новых паттернов в фильтр не устраняет корень: фильтр и shell всегда будут интерпретировать текст по-разному, пока фильтр не начнёт разбирать команды на уровне токенов. До появления нормальной защиты Adversa AI рекомендует временные меры:
[]Отключить флаги автовыполнения (--auto-exec, --auto-run, --auto-test, --dangerously-skip-permissions) без крайней необходимости
[]Запретить агентам работать с pull request'ами из форков: это прямой путь от файла атакующего к секретам
[]Рассматривать конфигурационные файлы репозитория как недоверенный код; например, .aider.conf.yml с вредоносным содержимым запускает атаку при первом принятом правке
GuardFall не существует в вакууме. В тот же период Adversa AI зафиксировала смежные атаки: TrustFall затронул Claude Code, Cursor, Gemini CLI и Copilot CLI; отдельно была найдена техника обхода deny-правил в Claude Code; атаки AutoJack и Agentjacking эксплуатировали отравленный контент для выполнения команд с привилегиями владельца. Общий знаменатель всех этих находок один: недоверенный текст добирается до настоящего shell раньше, чем защита успевает понять, что именно bash собирается выполнить. Публичных случаев эксплуатации GuardFall пока не зафиксировано, но исследование Adversa AI остаётся предупреждением для всей экосистемы AI-агентов.
GuardFall не является одиночным багом с номером CVE. Adversa AI охарактеризовала это как «опасное соглашение и целый класс проблем». Суть в том, что агенты проверяют вводимые команды по чёрному списку через обычное текстовое сопоставление, но bash обрабатывает текст до его выполнения. Фильтр и оболочка видят разные вещи. Это не ошибка в одной строке кода, а архитектурный просчёт.
Механика обхода проще, чем можно было бы ожидать. Например, команда r''m проходит через фильтр, потому что тот ищет подстроку rm и не находит её в таком виде. Bash при исполнении просто убирает пустые кавычки и запускает rm. Аналогично работают команды, закодированные в base64 и переданные через pipe в shell, или обычные утилиты вроде find и dd с определёнными флагами, которые превращают их в деструктивные инструменты. Расширение переменных и удаление кавычек происходят уже после того, как защита приняла решение пропустить команду.
Для успешной атаки нужно одновременно выполнить два условия. Первое: AI-модель должна сгенерировать вредоносную команду. Прямой rm -rf агент обычно отклоняет, но та же команда, спрятанная в build-файле или ответе, имитирующем документацию инструмента, проходит как рутинный шаг. Второе условие: агент должен работать в автономном режиме, то есть с включённым флагом автовыполнения (--auto-exec, --auto-run и подобными) или с отключённой изоляцией в контейнере. По словам Adversa AI, оба сценария абсолютно типичны для автоматизированных пайплайнов.
Уязвимыми оказались: opencode, Goose, Cline, Roo-Code, Aider, Plandex, Open Interpreter, OpenHands, SWE-agent и Hermes. Именно в Hermes уязвимость была обнаружена впервые и задокументирована в собственном issue-трекере проекта. Полная атака от начала до конца была продемонстрирована против production-бинарника Plandex; аналогичная схема подтверждена для восьми других агентов. В тестах использовалась модель Claude Sonnet 4.6.
Последствия эксплуатации серьёзные. Агенты запускают команды с правами текущего пользователя, а значит атака может привести к удалению файлов, краже SSH-ключей из ~/.ssh, утечке облачных учётных данных из ~/.aws и вообще всего, что лежит в домашней директории. Вектор доставки вредоносных инструкций: заражённые репозитории или пакеты с скрытыми командами внутри.
Единственным агентом, который устоял, стал Continue в режиме редактора по умолчанию. Он читает команду так, как это сделает bash, разбивая её на те же токены, что и оболочка, и только потом принимает решение о блокировке. Плюс у него есть жёсткий список деструктивных команд, которые блокируются безусловно. В режиме командной строки с автовыполнением защита слабее, хотя большинство деструктивных нагрузок по-прежнему упирается в жёсткий блок. По оценке Adversa AI, реализация аналогичной защиты для опытного инженера займёт около двух дней.
Патч для чёрного списка проблему не решит. Добавление новых паттернов в фильтр не устраняет корень: фильтр и shell всегда будут интерпретировать текст по-разному, пока фильтр не начнёт разбирать команды на уровне токенов. До появления нормальной защиты Adversa AI рекомендует временные меры:
- []Перенаправить
[]Отключить флаги автовыполнения (--auto-exec, --auto-run, --auto-test, --dangerously-skip-permissions) без крайней необходимости
[]Запретить агентам работать с pull request'ами из форков: это прямой путь от файла атакующего к секретам
[]Рассматривать конфигурационные файлы репозитория как недоверенный код; например, .aider.conf.yml с вредоносным содержимым запускает атаку при первом принятом правке
GuardFall не существует в вакууме. В тот же период Adversa AI зафиксировала смежные атаки: TrustFall затронул Claude Code, Cursor, Gemini CLI и Copilot CLI; отдельно была найдена техника обхода deny-правил в Claude Code; атаки AutoJack и Agentjacking эксплуатировали отравленный контент для выполнения команд с привилегиями владельца. Общий знаменатель всех этих находок один: недоверенный текст добирается до настоящего shell раньше, чем защита успевает понять, что именно bash собирается выполнить. Публичных случаев эксплуатации GuardFall пока не зафиксировано, но исследование Adversa AI остаётся предупреждением для всей экосистемы AI-агентов.