В опубликованном в понедельник CVE описывается защита от разрушительных команд в Continue CLI. В headless-режиме и auto-режиме политика по умолчанию предоставляет инструменту Bash право allow. Единственный жесткий блок — проверка на опасные пути, сопоставляющая /, /*, ~, ~/*, /usr, /etc, /bin, /sbin и их префиксы.

Чего нет в списке

Рекурсивное принудительное удаление /home, /root, /var, /opt или /srv не отключено. Хуже того, командная строка разбирается с помощью shell-quote, который сводит $HOME к пустому токену — поэтому rm -rf $HOME тоже не проходит проверку на опасный путь, а затем оболочка при фактическом запуске команды снова подставляет переменную. Парсер и оболочка расходятся в том, что означает эта строка, а проверка опирается на ответ парсера. Отдельно find с -delete оценивается как высокий риск, а не отключается, и shred, wipefs, truncate и pkexec вообще не обработаны.

Что неверно в привычной интерпретации

Три вещи. Во-первых, обычный шаблон AI-CVE — «уже исправлено до того, как вы об этом услышали» — здесь все наоборот. Указанный диапазон затрагиваемых версий — «до 1.5.47 включительно», а 1.5.47 — текущий опубликованный релиз. Исправленной версии нет. Во-вторых, оценки 8.3 и 7.4 HIGH присвоены самим CNA, подавшим сообщение, и помечены как Secondary; NVD не публиковал основной оценки. Любой, кто пишет «NVD оценивает это как High», ошибается. В-третьих, вектор условный, а не разовый удаленный эксплойт: строка CVSS содержит AC:H и AT:P, то есть агент должен работать без присмотра и обрабатывать текст, контролируемый атакующим. В самой записи сказано, что «indirect prompt injection in that content can cause an unattended run to destroy the invoking user's data.» Нет никаких признаков эксплуатации в реальной среде — это анализ denylist, а не отчет об инциденте.

Почему история в сроках

Проблема на GitHub была открыта 19 июля и названа почти так же, как CVE. Она по-прежнему открыта, без видимого ответа сопровождающих, спустя 36 дней. Auto-режим и headless-режим — это то, как coding agents попадают в CI, и здесь есть конкретная демонстрация того, что подход с блок-листом проигрывает подстановке переменных.

Общий вывод

Denylist опасных строк — это не граница безопасности, когда оболочка получает строку позже. У каждого agent harness, который ограничивает Bash таким образом, та же структурная проблема.