Google устранил критическую уязвимость в Gemini CLI, позволявшую удаленно выполнять код в пайплайнах CI/CD

Gemini

Компания Google выпустила срочные обновления для инструмента командной строки Gemini CLI и сопутствующего модуля для GitHub Action. Причина - критическая уязвимость, которая ставит под угрозу цепочки поставок программного обеспечения. Проблема, зарегистрированная под идентификатором GHSA-wpqr-6v78-jr5g (уникальный код в базе данных GitHub Advisory о недостатках безопасности), открывает злоумышленникам доступ к пайплайнам непрерывной интеграции и непрерывного развертывания (CI/CD). Через эту брешь атакующий может выполнить произвольные команды на сервере сборки.

Детали уязвимости

Уязвимость кроется в некорректной обработке доверия к рабочей области и механизмах списка разрешенных инструментов. В окружении Gemini CLI, когда он работает в автоматических, неинтерактивных средах (например, внутри GitHub Actions), инструмент ранее обрабатывал данные с избыточными привилегиями. Это привело к двум отдельным обходным путям защиты, которые обнаружили исследователи безопасности Элад Мегед из компании Novee Security и Дан Лисичкин из Pillar Security.

Первый способ эксплуатации связан с так называемым безголовым режимом (headless mode). В этом режиме папки рабочего пространства автоматически считаются доверенными. Соответственно, атакующему достаточно разместить в недоверенной директории вредоносные переменные окружения - и код выполнится без дополнительных проверок. Второй метод использует режим выполнения Yolo, который игнорирует детальные списки разрешенных инструментов. Злоумышленник обходит ограничения и достигает удаленного выполнения кода через атаку внедрения вредоносных команд в подсказки (prompt injection). Корень проблемы - недостаточная валидация входных данных: символы операционной системы не фильтровались должным образом, что привело к прямым инъекциям команд.

Критическая степень опасности этой уязвимости обусловлена ее влиянием на цепочки поставок. Автоматизированные пайплайны часто проверяют входящие запросы на слияние (pull request) или обрабатывают публичные вопросы на GitHub. Если рабочий процесс запускает уязвимую версию Gemini CLI для анализа кода, присланного атакующим, система автоматически загружает вредоносные конфигурационные файлы. Такое автоматическое доверие создает прямой путь для несанкционированного выполнения произвольных команд на сервере сборки.

Последствия компрометации могут быть серьезными. После получения контроля над сервером злоумышленник способен похитить секреты репозитория (токены доступа, ключи шифрования), изменить исходный код или проникнуть глубже в инфраструктуру организации. Примечательно, что уязвимость не требует повышенных привилегий или действий со стороны пользователя. Она легко эксплуатируется по сети, что делает ее особенно опасной.

Google уже выпустила исправления, которые кардинально меняют поведение Gemini CLI в автоматизированных задачах. Безголовые режимы теперь работают так же, как интерактивные: требуется явная настройка доверия перед обработкой любых переменных окружения или конфигурационных файлов. Организациям, использующим эти инструменты, необходимо немедленно пересмотреть свои пайплайны и применить обновления.

В частности, следует обновить npm-пакет Gemini CLI до версии 0.39.1 или 0.40.0-preview.3, а также сопутствующий модуль GitHub Action до версии 0.1.22. Для рабочих процессов, обрабатывающих доверенные внутренние данные, рекомендуется добавить переменную окружения для доверия к рабочему пространству. Те же пайплайны, что имеют дело с недоверенными внешними входами, должны использовать строгие списки разрешенных инструментов. Кроме того, нужно провести аудит всех существующих модулей GitHub Actions, в которых указаны старые уязвимые версии командного интерфейса.

Тем не менее, важно понимать, что описанная проблема - лишь очередное напоминание о том, как сложно обеспечить безопасность автоматизированных сред разработки. Современные инструменты все чаще получают высокие привилегии для выполнения действий от имени пользователя. И любая ошибка в доверии к рабочей области или в фильтрации команд может привести к полной компрометации инфраструктуры. В данном случае Google оперативно среагировал и выпустил патч, однако ответственность за его своевременное применение лежит на командах разработки и безопасности компаний.

В заключение стоит отметить, что уязвимости в инструментах CI/CD становятся все более частой целью злоумышленников. Атаки на цепочки поставок, такие как недавние инциденты с SolarWinds или Log4j, показали, к каким масштабным последствиям может привести одна брешь. Поэтому обновление Gemini CLI и GitHub Action - не просто техническая рекомендация, а критическое требование для защиты всей цепочки создания программного обеспечения. Специалистам по информационной безопасности следует как можно скорее проверить свои системы и убедиться, что патчи установлены. Игнорирование этой уязвимости может дорого обойтись бизнесу, ведь злоумышленники уже активно ищут способы воспользоваться ею в своих атаках.

Ссылки

Комментарии: 0