Специалисты по кибербезопасности из компании Tracebit обнаружили серьезную уязвимость в инструменте командной строки Gemini CLI от Google, которая позволяла киберпреступникам незаметно выполнять вредоносные команды на компьютерах разработчиков. Эта брешь в безопасности демонстрирует новые риски, связанные с интеграцией искусственного интеллекта в инструменты разработки.
Что представляет собой Gemini CLI и его функциональность
Gemini CLI, представленный Google 25 июня 2025 года, является инновационным инструментом командной строки, предназначенным для взаимодействия разработчиков с большой языковой моделью Gemini через терминал. Утилита создана для автоматизации задач программирования: она загружает файлы проекта в контекст ИИ и позволяет работать с моделью на естественном языке.
Ключевая особенность инструмента заключается в его способности не только предоставлять рекомендации и генерировать код, но и выполнять команды непосредственно в локальной системе. Это происходит либо после получения разрешения пользователя, либо автоматически, если команда входит в предварительно настроенный список разрешенных операций.
Механизм атаки через prompt injection
Исследователи Tracebit выявили уязвимость всего через два дня после релиза инструмента, 27 июня. Проблема была устранена в версии 0.1.14, выпущенной 25 июля, что свидетельствует о быстром реагировании Google на угрозу безопасности.
Эксплойт основывался на недостатках обработки контекстных файлов — документов типа README.md и GEMINI.md, которые автоматически подставляются в промпт для улучшения понимания кода ИИ-моделью. Злоумышленники могли внедрить вредоносные инструкции через технику prompt injection в эти, казалось бы, безобидные файлы.
Практическая демонстрация атаки
В рамках proof-of-concept исследователи создали репозиторий с простым Python-скриптом и специально подготовленным файлом README.md. При сканировании через Gemini CLI ИИ сначала получал инструкцию выполнить безопасную команду grep ^Setup README.md
, а затем — скрытую команду для кражи данных.
Наиболее опасным аспектом этой атаки является использование символа точки с запятой (;) для объединения команд. Хотя пользователь разрешал выполнение безобидной команды grep, после разделителя скрывалась инструкция для передачи переменных окружения (потенциально содержащих токены доступа и секретные ключи) на удаленный сервер злоумышленника.
Потенциальные последствия и векторы атак
Уязвимость открывала широкие возможности для киберпреступников. Помимо кражи конфиденциальной информации, злоумышленники могли:
- Развернуть reverse shell для удаленного управления системой
- Удалить критически важные файлы проекта
- Установить дополнительное вредоносное ПО
- Получить постоянный доступ к рабочей среде разработчика
Особую опасность представляла возможность визуального маскирования вредоносного кода с помощью пробелов и специальных символов, что делало атаку практически незаметной для пользователя.
Сравнительный анализ с конкурентами
Важно отметить, что исследователи Tracebit протестировали аналогичные техники атак на других ИИ-инструментах разработки, включая OpenAI Codex и Claude от Anthropic. В этих системах эксплойт оказался неэффективным благодаря более надежным механизмам управления разрешениями и лучшей изоляции выполняемых команд.
Рекомендации по защите и предотвращению атак
Пользователям Gemini CLI настоятельно рекомендуется немедленно обновиться до версии 0.1.14 или более поздней. Дополнительные меры безопасности включают:
- Избегание использования инструмента на неизвестных или ненадежных кодовых базах
- Запуск Gemini CLI только в изолированных средах при работе с внешними проектами
- Регулярный аудит списка разрешенных команд
- Внимательный анализ всех выполняемых операций перед предоставлением разрешений
Данный инцидент подчеркивает важность комплексного подхода к безопасности при интеграции ИИ-технологий в инструменты разработки. Разработчикам следует с осторожностью относиться к автоматическому выполнению команд ИИ-помощниками и всегда применять принцип минимальных привилегий при настройке таких систем. Регулярное обновление инструментов и следование рекомендациям производителей остается критически важным для поддержания высокого уровня кибербезопасности в современной среде разработки.