Google corrige Gemini CLI après la découverte de failles

L’agent IA de codage en ligne de commande de Google est vulnérable à des attaques par injection de prompts. Elle ouvre la voie à de possibles vols de données incluant des mots de passe et des clés API.
Si les agents IA de codage ont le vent en poupe, les questions autour de leur maturité et de leur sécurité se posent. Preuve en est, la découverte par des chercheurs d’une faille dans Gemini CLI de Google. De type injection de prompts, elle peut être exploitée par des pirates pour voler des données sensibles dont des identifiants, mots de passe et des clés API, sans que les programmeurs s’en aperçoivent. Lancé le 25 juin dernier, cet agent de codage intègre le LLM du fournisseur à des outils traditionnels de lignes de commandes incluant PowerShell ou Bash. Cela permet aux codeurs d’utiliser des prompts en langage naturel pour accélérer les tâches comme l’analyse et le débogage de code, la génération de documentation, et la compréhension de nouveaux répertoires. Deux jours après le lancement de cet outil, Tracebit révèle au fournisseur une première faiblesse que les développeurs pouvaient rencontrer en travaillant sur des dépôts de code open source non vérifiés. Dans leur PoC, des chercheurs ont montré que des prompts malveillants étaient poussés via de simples fichiers readme.md GNU (public licence) laissant croire qu’ils faisaient partie de repository open source.
Les chercheurs ont ensuite découvert d’autres failles potentiellement exploitables ensemble pour exécuter des commandes shell malveillantes. Le premier est que Gemini CLI octroie la capacité aux utilisateurs d’exécuter certaines commandes fréquentes, comme grep [pour rechercher et relier des patterns de texte dans des fichiers contenant des expressions régulières, ndlr], et éviter de constants avertissements d’autorisation. C’est un service utile, sauf quand le système est incapable de distinguer des commandes grep légitimes ou se faisant passer comme tel. Comme la vérification effectuée est simpliste, cela permettrait à un attaquant d’exécuter n’importe quelle commande malveillante qu’ils veulent sans avoir à re-prompter.
Des lignes de commandes camouflables
“Cela pourrait inclure une commande grep suivie d’une autre pour exfiltrer discrètement toutes les variables de l’environnement utilisateur, contenant potentiellement des secrets, à un serveur distant. Cette commande compromise pourrait faire n’importe quoi comme installer un shell distant, effacer des fichiers…”, explique Sam Cox, co-fondateur et CTO de Tracebit. Une fois validée, celle-ci pourrait alors être exécutée mais l’utilisateur ne pourrait-il pas la remarquer comme elle tourne dans son interface de ligne de commandes ? Si tel était le cas, cela permettrait de mettre à jour l’activité de l’attaquant. Malheureusement, Tracebit a découvert que ces lignes de commandes pourraient être cachées dans Gemini CLI en utilisant des caractères blancs pour les rendre invisibles à l’oeil. “C’est une combinaison d’injection de prompt, d’un manque de considération d’expérience utilisateur ne permettant pas de révéler les commandes à risque et leur insuffisante validation. Tout cela combiné, les effets sont significatifs et indétectables”, poursuit M. Cox. Ce même type d’attaque ne marche pas avec des outils concurrents : “Lorsque l’on essaye ce type d’attaque contre d’autres outils de codage IA, nous avons trouvé de multiples couches de protections qui les rendent inopérantes”.
Les outils IA sont un bon moyen d’accélérer et d’automatiser les tâches fastidieuses et consommatrices de temps. Cependant, ils font également la même chose pour aider les attaquants à préparer leur injection de prompt. L’exploit documenté par Tracebit repose sur des hypothèses non dénuées de fondement, selon lesquelles un attaquant pourrait exploiter ces failles dans des conditions réelles. Parallèlement, la chasse contre ce type de vulnérabilités est déjà lancée pour un large éventail de contexte et d’outils.
Un avertissement en cas de non usage du mode sandboxing
Ces trous de sécurité dans Gemini CLI ne seront sans doute pas les derniers. Ils ont été évalués par Google comme étant de gravité élevée (V1) et nécessitant une correction prioritaire (P1), et ont été corrigés dans la version 0.1.14 de Gemini CLI publiée le 25 juillet. Au-delà de la mise à jour, le meilleur conseil est toujours d’exécuter les outils en mode sandbox afin de les isoler du système hôte comme a pu le souligner la firme de Mountain View : « Notre modèle de sécurité pour la CLI est axé sur la fourniture d’un sandboxing robuste et multicouches. Nous proposons des intégrations avec Docker, Podman et macOS Seatbelt, et fournissons même des conteneurs pré-construits que Gemini CLI peut utiliser automatiquement pour une protection transparente », a déclaré l’équipe du programme de divulgation des vulnérabilités de Google à Tracebit. « Pour tout utilisateur qui choisit de ne pas utiliser le sandboxing, nous nous assurons que cela soit clairement indiqué en affichant un avertissement permanent en rouge tout au long de sa session ».