Исследователь Хельге Сверре обнаружил уязвимость в инструменте Claude Code, позволяющую обходить системные ограничения с помощью специальных команд. Использование конструкции «bang» (например, `!`) заставляет модель игнорировать запреты, прописанные в системном промпте, и выполнять действия, которые разработчики изначально пытались заблокировать для обеспечения безопасности и контроля над средой выполнения.
Проблема заключается в способе обработки командной строки и интерпретации специальных символов, которые агент воспринимает как приоритетные инструкции. В ходе экспериментов выяснилось, что модель, получив команду через «bang», переключается в режим выполнения, игнорируя предыдущие установки о безопасности. Это создает риск несанкционированного доступа к файловой системе или выполнения непредусмотренных операций в окружении, где работает агент.
Данный инцидент подчеркивает критическую важность изоляции системных инструкций от пользовательского ввода в агентных системах. Разработчикам инструментов, использующих LLM для управления терминалом, необходимо внедрять более строгие уровни фильтрации и валидации команд, чтобы предотвратить «инъекции» в логику управления агентом, которые могут привести к выполнению вредоносного кода или нарушению целостности проекта.
Ключевые факты
- Уязвимость обнаружена в инструменте Claude Code, предназначенном для автоматизации задач в терминале.
- Механизм обхода основан на использовании префикса «bang» (например, `!`), который заставляет модель игнорировать системные ограничения.
- Агент переходит к выполнению команд, которые были явно запрещены в системном промпте для защиты среды.
- Проблема демонстрирует уязвимость агентных систем к методам манипуляции, аналогичным SQL-инъекциям, но на уровне управления терминалом.