Уязвимость в Gemini CLI позволял скрытно выполнять вредоносный код

Уязвимость в Gemini CLI от Google позволяла злоумышленникам скрытно выполнять вредоносные команды и воровать данные с компьютеров разработчиков, используя разрешенные программы.

Уязвимость была обнаружена и сообщена Google компанией Tracebit 27 июня. Техногигант выпустил исправление в версии 0, которая стала доступна 25 июля.

Gemini CLI, впервые выпущенный 25 июня 2025 года, – это инструмент интерфейса командной строки, разработанный Google, который позволяет разработчикам напрямую взаимодействовать с ИИ Gemini от Google через терминал.

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

Инструмент может давать рекомендации, писать код и даже выполнять команды локально, предварительно спросив пользователя или используя механизм разрешенных списков.

Исследователи Tracebit, изучившие новый инструмент сразу после его выхода, обнаружили, что его можно обманом заставить выполнять вредоносные команды. В сочетании с недостатками пользовательского интерфейса эти команды могут привести к незаметным атакам с выполнением кода.

Эксплойт работает на основе обработки Gemini CLI «контекстных файлов», в частности „README.md“ и „GEMINI.md“, которые считываются в подсказку для облегчения понимания кодовой базы.

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

Они продемонстрировали атаку, создав репозиторий, содержащий доброкачественный скрипт Python и отравленный файл „README.md“, а затем запустив на нем сканирование Gemini CLI.

Сначала Gemini дается указание выполнить доброкачественную команду (grep ^Setup README.md), а затем запускается вредоносная команда для утечки данных, которая рассматривается как доверенное действие, не требуя от пользователя одобрения.

Команда, используемая в примере Tracebit, выглядит как grep, но после точки с запятой (;) начинается отдельная команда эксфильтрации данных. Gemini CLI интерпретирует всю строку как безопасную для автовыполнения, если пользователь включил grep в список разрешенных действий.

«На самом деле это команда grep, за которой следует команда для бесшумной утечки всех переменных окружения пользователя (возможно, содержащих секреты) на удаленный сервер».

«Вредоносной командой может быть что угодно (установка удаленной оболочки, удаление файлов и т. д.)».

Кроме того, вывод Gemini может быть визуально обработан с помощью пробелов, чтобы скрыть вредоносную команду от пользователя, так что он не будет знать о ее выполнении.

Tracebit создал следующее видео, демонстрирующее PoC-эксплойт этого дефекта:

Несмотря на то, что атака имеет ряд серьезных предпосылок, таких как предположение, что пользователь включил определенные команды в список разрешенных, настойчивые злоумышленники могут добиться желаемых результатов во многих случаях.

Это еще один пример опасности ИИ-помощников, которых можно обмануть и заставить выполнять тихую утечку данных, даже когда им предписано выполнить, казалось бы, безобидные действия.

Пользователям Gemini CLI рекомендуется обновиться до версии 0.1.14 (последней). Кроме того, не запускайте инструмент на неизвестных или недоверенных кодовых базах или делайте это только в «песочнице».

Tracebit утверждает, что протестировала метод атаки на других инструментах агентного кодирования, таких как OpenAI Codex и Anthropic Claude, но они не могут быть использованы из-за более надежных механизмов разрешительных списков.