В современном мире искусственный интеллект занимает всё более заметное место в IT-разработке и автоматизации задач. Среди популярных новинок — Gemini CLI, ИИ-помощник от компании Google, выпущенный 25 июня 2025 года. Этот инструмент предназначен для работы с большими языковыми моделями (LLM) через командную строку и нацелен на помощь разработчикам в программировании, автоматизации и анализе кода. Однако уже в первые недели с момента релиза специалисты выявили серьёзную уязвимость, которая позволяет злоумышленникам использовать Gemini CLI для выполнения произвольного вредоносного кода на компьютерах пользователей. Обнаруженная проблема открывает новые вызовы для безопасности ИИ-инструментов и поднимает вопросы о защите приватных данных разработчиков и организаций.
Из-за особенностей работы Gemini CLI атака могла пройти практически незаметно и привести к серьёзным последствиям, включая кражу секретов и удалённое управление системой. Gemini CLI представляет собой инструмент, работающий в терминале и позволяющий разработчикам напрямую взаимодействовать с AI-моделью Gemini через естественный язык. Среди возможностей утилиты — загрузка проектных файлов в «контекст» для улучшенного понимания кода, генерация рекомендаций, автоматическое предложение решений, а также выполнение локальных команд. Выполнение команд происходит либо после получения подтверждения пользователя, либо автоматически в случае, если команда входит в список разрешённых (allow-list). Именно работа с этим списком и взаимодействие с контекстными файлами стали причиной критической ошибки в безопасности.
Уязвимость была выявлена исследователями из компании Tracebit уже через пару дней после релиза Gemini CLI, 27 июня 2025 года. Они обнаружили, что в инструменте отсутствают надёжные механизмы фильтрации и анализа команд, что приводит к возможности скрытного выполнения вредоносных инструкций. Основой атаки стала техника инъекции промптов через контекстные файлы, такие как README.md и GEMINI.md, которые Gemini CLI загружает для «понимания» проекта.
Злоумышленник мог внедрить вредоносные команды прямо в эти файлы, и CLI воспринимал их как доверенные ввиду работы с разрешёнными командами. Суть эксплойта основывается на обходе системы безопасности через сложные комбинированные команды в Unix-подобной оболочке. В демонстрации Tracebit приводится пример, как в команды добавляют вроде бы безопасную операцию grep, а после символа точки с запятой (;) добавляют скрытую инструкцию для кражи переменных окружения или запуска обратной оболочки (reverse shell). В условиях, когда grep находится в списке разрешённых, Gemini CLI автоматически выполняет всю строку целиком без повторного запроса, воспринимая её как единую безопасную команду. Это создаёт критическую брешь, поскольку злоумышленник получает полный контроль над терминальной сессией и доступ к конфиденциальной информации.
Немаловажно, что сама модель ИИ в Gemini CLI пытается визуально скрыть вредоносную часть вывода с помощью пробелов и форматирования, чтобы пользователь не заметил подозрительную активность. Такая тонкая эксплуатация UX-проблем делает уязвимость особенно опасной. Технически, злоумышленник при наличии доступа к репозиторию с нужными файлами может организовать заражение, причём не требуются сложные условия — достаточно, чтобы пользователь запустил инструмент на заражённом или чужом проекте. В условиях активного использования open-source и внешних сторонних библиотек это представляет серьезный риск. В Google оперативно отреагировали на уведомление специалистов и выпустили обновление Gemini CLI — версию 0.
1.14, которая вышла 25 июля 2025 года. Обновление содержит правки безопасности, в том числе улучшенный парсер команд и ужесточение проверок allow-list, а также меры по изоляции выполнения команд. Несмотря на оперативность исправлений, рекомендация разработчиков — не использовать утилиту на ненадёжных репозиториях и обновлять ПО по мере выхода патчей. Также советуют работать в изолированной среде типа контейнеров или виртуальных машин.
Интересно, что эксперты из Tracebit тестировали аналогичные механизмы в конкурирующих продуктах, включая OpenAI Codex и Claude от Anthropic. Там такие атаки оказались невозможными благодаря более продвинутым системам проверки команд и ограничению прав на уровне API. Это подчёркивает необходимость комплексного подхода к безопасности в разработке ИИ-инструментов, особенно учитывая их тесную интеграцию с локальным окружением пользователей и привилегиями на выполнение команд. Риски, связанные с уязвимостями в Gemini CLI, выходят далеко за рамки самих разработчиков. Автоматизация и использование ИИ для программирования — это направление, которое развивается очень стремительно, и многие компании и специалисты уже полагаются на подобные инструменты в повседневной работе.
Возможность получить доступ к приватным переменным окружения, среди которых часто хранятся токены, ключи доступа и пароли, означает угрозу компрометации целых инфраструктур. Вредоносный код может удалять файлы, устанавливать бэкдоры или запускать сложные цепочки атак, что противоречит основным принципам безопасности информационных систем. Технический анализ показал, что главной проблемой была недостаточная сегрегация команд, недостаточная обработка сложных синтаксических конструк и доверие ко всему содержимому контекстных файлов. Иными словами, Gemini CLI воспринимал любой код в README.md или другом загруженном файле как потенциально безопасный для автоматизированного выполнения, если некоторые части команды уже присутствовали в списке разрешённых.
Такая архитектурная ошибка и недостаточный контроль пользовательского ввода — классические ошибки в безопасности, которые особенно опасны в инструментах с высокими привилегиями. Для разработчиков и компаний, использующих Gemini CLI или аналогичные инструменты, стоит учитывать несколько важных рекомендаций. Во-первых, всегда тщательно проверять состав allow-list и минимизировать количество автоматически выполняемых команд. Во-вторых, следить за публикациями обновлений и своевременно внедрять патчи. В-третьих, избегать запуска таких инструментов на непроверенном или чужом коде без изоляции.
В-четвёртых, мониторить действия процессов и использовать системы обнаружения аномалий, чтобы вовремя выявлять подозрительную активность. Наконец, сохранять резервные копии данных и применять методы контроля версий для конфигурационных и контекстных файлов. На фоне роста популярности ИИ-инструментов для программирования подобные случаи подчеркивают необходимость более жёсткого регулирования и контроля безопасности. Внедрение комплексных механизмов аутентификации и авторизации в командных интерфейсах, улучшение UX для предупреждения пользователей о потенциально опасных действиях, использование списков разрешённых с логикой минимальных прав — всё это должно стать стандартом в индустрии. Подытоживая, уязвимость в Gemini CLI продемонстрировала реальные риски, связанные с автоматизированным выполнением кода в AI-помощниках.