De l'invite à l'exploitation : Cyera Research Labs dévoile des vulnérabilités liées aux commandes et à l'injection rapide dans la CLI Gemini

Faits marquants

  • Cyera Research Labs a identifié deux failles de sécurité, l'injection de commandes et l'injection rapide, dans l'outil Gemini CLI de Google.
  • Les deux vulnérabilités ont permis aux attaquants d'exécuter des commandes arbitraires avec les mêmes privilèges que le processus CLI.
  • Google a reconnu les résultats et a publié des correctifs par le biais de son programme Vulnerability Rewards (VRP).
  • La découverte a été réalisée à l'aide de la méthodologie de recherche sur les vulnérabilités augmentée par l'IA de Cyera, démontrant comment les grands modèles de langage (LLM) peuvent accélérer la découverte de sécurité dans le monde réel.

Ce que nous avons découvert et pourquoi c'est important

Cyera Research Labs a découvert deux vulnérabilités exploitables dans la CLI Gemini de Google, une interface en ligne de commande qui permet aux développeurs d'interagir directement avec la famille de grands modèles de langage Gemini.

Ces problèmes, identifiés sous les numéros 433939935 et 433939640, ont permis aux attaquants d'exécuter des commandes arbitraires, soit en exploitant la logique d'installation de l'extension VS Code, soit en utilisant des techniques d'injection rapide.

Si elles étaient exploitées, ces vulnérabilités pourraient permettre aux attaquants d'accéder à des environnements de développement sensibles, à des informations d'identification et à des données de modèles d'IA. La réponse rapide et les mesures correctives apportées par Google par le biais de son VRP reflètent la gravité de ces problèmes et l'importance croissante de sécurisation des outils de développement d'IA.

À propos de GEMINI CL

CLI Gemini est un outil d'interface en ligne de commande développé par Google qui permet aux développeurs d'interagir avec la famille de grands modèles de langage Gemini directement depuis le terminal. Il fournit des fonctionnalités pour des tâches telles que la génération de texte, l'analyse de code et l'intégration des fonctionnalités de Gemini dans des flux de travail ou des applications locaux. L'outil est conçu pour rationaliser l'expérimentation et le développement avec les modèles Gemini sans nécessiter d'interface Web.

Pourquoi les outils alimentés par l'IA ont besoin d'une protection supplémentaire

Les environnements de développement de l'IA sont particulièrement exposés car ils relient souvent les entrées des utilisateurs, l'inférence de modèles et les actions au niveau du système. Les vulnérabilités de ces outils peuvent avoir des répercussions en cascade, pouvant entraîner un accès non autorisé à la propriété intellectuelle, des déploiements mal configurés ou la compromission des données de formation.

Les résultats de Cyera soulignent que l'injection rapide n'est pas uniquement une préoccupation au niveau du modèle - cela peut directement compromettre le système lorsque les interfaces en langage naturel interagissent avec les mécanismes d'exécution du code.

L'approche augmentée par l'IA à la base de cette découverte

L'équipe de recherche de Cyera a utilisé un Méthodologie augmentée par le LLM pour accélérer la découverte des vulnérabilités :

  • Analyse statique automatisée: Une analyse Semgrep a identifié 6 115 problèmes potentiels dans la base de code TypeScript de Gemini CLI.
  • Triage alimenté par LLM: Une invite d'audit spécialisée a analysé chaque résultat pour en déterminer l'exploitabilité, en limitant les résultats à 12 pistes en quelques heures au lieu de plusieurs semaines.
  • Validation manuelle: Utilisation Curseur IDE et Claude 4 Sonnet, les chercheurs ont validé et confirmé deux vulnérabilités exploitables en 48 heures.
  • Gains d'efficacité: Ce processus a permis de Réduction de 99,8 % des faux positifs et ont réduit le temps d'analyse d'environ 300 à 500 heures à seulement 16 heures.

Contexte

Les recherches de Cyera en matière de sécurité se concentrent sur les vulnérabilités des infrastructures d'IA en raison de leur position stratégique dans les piles technologiques modernes. Les interfaces de ligne de commande AI représentent des limites de confiance critiques entre le traitement du langage naturel et l'exécution du système. Les vulnérabilités de ces composants ont un impact direct sur les postures de sécurité des données dans les environnements cloud, d'IA et sur site.

Lorsque des outils d'IA tels que Gemini CLI sont compromis, l'impact technique va au-delà du processus immédiat. Ces outils accèdent généralement aux environnements de développement, aux fichiers de configuration, aux informations d'identification et aux artefacts de modèle. Une exploitation réussie fournit aux attaquants un accès privilégié à la propriété intellectuelle, aux configurations de déploiement et potentiellement aux données des clients traitées via des flux de travail d'IA.

Méthodologie de recherche

La recherche a utilisé une approche systématique combinant une analyse statique avec une validation des vulnérabilités basée sur LLM :

Phase 1 : Analyse statique automatisée

L'analyse SEMGREP a identifié 6 115 problèmes de sécurité potentiels dans la base de code TypeScript de la CLI Gemini. La configuration de numérisation comprenait les éléments suivants :

  • Règles de sécurité génériques pour les modèles de vulnérabilité courants
  • Contrôles de sécurité spécifiques à TypeScript
  • Règles de détection des vulnérabilités logiques ciblant les problèmes de flux de contrôle

Phase 2 : Triage alimenté par LLM

Une invite d'audit de sécurité spécialisée a traité les résultats du SEMGREP afin de déterminer l'exploitabilité. L'invite a analysé chaque résultat en fonction de critères spécifiques :

  • Accessibilité à partir de vecteurs d'entrée (arguments CLI, entrées d'API, fichiers de configuration, plugins)
  • Présence et efficacité de la désinfection des intrants
  • Exploitabilité réelle dans les configurations de production

Le processus de triage a réduit 6 115 résultats à 12 pistes pertinentes grâce à une analyse systématique du flux de code.

L'invite qui a été utilisée :

Vous êtes un agent d'audit de sécurité de l'IA professionnel. Vous analysez une grande base de code située dans le dossier « gemini-cli ». Vous avez un accès complet à tous les fichiers sources de ce dossier.

Vous recevez un fichier de sortie du scan Semgrep : « gemini_semgrep_output.json », qui contient quelques milliers de résultats. Votre travail consiste à trier chaque découverte et à déterminer si elle conduit à une vulnérabilité réelle et exploitable.

De plus, après avoir parcouru la sortie de semgrep, vous DEVEZ analyser le flux de code réel dans l'arbre des sources « gemini-cli » lorsque vous prenez des décisions.

---

ANALYSE PAR DÉCOUVERTE : PROCÉDEZ COMME SUIT :

1. Vérifiez l'accessibilité

Déterminez si le résultat est accessible à partir de l'un de ces vecteurs d'entrée :

- Arguments CLI (argv, argc, autres arguments d'environnement)

- Entrées de l'API REST (le cas échéant)

- Fichiers de modèles analysés : GGUF, fichiers de machines à sous, tokenizer ou fichiers de vocabulaire

- Fichiers de configuration (par exemple, JSON, YAML, TOML)

- Interfaces distantes (ports, fichiers, RPC, différents protocoles)

- Processus d'authentification

- mécanismes de chargement des plugins/dlls/bin

Si le problème n'est pas accessible via l'une des méthodes ci-dessus, marquez-le comme « inaccessible » : vrai.

2. Vérifier la désinfection ou la validation

Si le problème est résolu, analysez le contrôle complet et le flux de données pour vérifier si l'entrée est nettoyée ou validée avant d'atteindre le puits vulnérable.

- Recherchez la logique de validation des entrées, les vérifications des limites, la validation du schéma, les vérifications des octets magiques, les contraintes de longueur d'entrée, etc.

- Déterminez si la validation est manquante, faible ou contournable.

3. Revérifiez le flux pour plus de confiance

Si vous suspectez une faille :

- Réacheminez le flux complet de l'entrée au puits

- Vérifiez qu'aucune branche de validation n'a été manquée

- Assurez-vous que votre raisonnement est solide et enraciné dans le code source

---

UTILISER LE TERMINAL POUR UNE ANALYSE INTELLIGENTE DES FICHIERS (macOS/Linux)

Pour lire et analyser efficacement des fichiers volumineux sans consommer trop de mémoire, utilisez des outils shell natifs qui traitent les données en streaming au lieu de tout charger en mémoire :

- Utilisez « grep -R « pattern » .` ou `grep -E « regex » file.txt pour localiser les appels de fonction ou les modèles de données pertinents (équivalent à la chaîne « Select-String » de PowerShell).

- Utilisez « tail -n 50 file.txt » ou « head -n 100 file.txt » pour lire des sections partielles d'un fichier.

- Combinez les filtres avec `awk`, `sed` et `grep` pour extraire ou transformer des données, par exemple :

grep « function » script.sh | awk '{print $2}'

- Utilisez `awk` ou `sed` pour l'analyse en ligne des corps de fonctions ou des structures de configuration :

awk '/start_pattern/, /end_pattern/' file.txt

- Utilisez `wc -c file.txt` ou `du -h file.txt` pour vérifier la taille des fichiers.

- Évitez d'utiliser « cat file.txt » sur de très gros fichiers, sauf si vous diffusez ou redirigez la sortie.

Appliquez ces techniques lors de la traversée du code et de l'analyse de fichiers pour optimiser l'évolutivité lors de la gestion de fichiers source ou journaux volumineux.

---

SI LA DÉCOUVERTE EST UNE VULNÉRABILITÉ VALIDE :

Ajoutez un objet JSON à un fichier nommé security_report_ {current_date} .json au format suivant :

{

« localisation_exacte » : {

« fichier » : "<filename>«,

« fonction » : "<function name if applicable>«,

« ligne » : <line number>

},

<Short explanation of the vulnerability and relevant CWE (e.g., CWE-125 : Out-of-Bounds Read) >« explication_vulnérabilité » : « »,

<Why input validation is insufficient or missing>« assainissement_validation » : "«,

« input_exploit_example » : {

« vector » : « <'argv' | 'API rest' | 'fichier de configuration' | 'fichier modèle' | 'fichier d'encoche'> »,

<Concrete example of input that would trigger the vulnerability>« exemple_input » : "»

}

}

---

SI LA DÉCOUVERTE N'EST PAS UNE VÉRITABLE VULNÉRABILITÉ :

Ajoutez un objet JSON à un fichier nommé unrelevant_leads_ {current_date} .json au format ci-dessous :

{

« description_du problème » : {

« titre » : "<Semgrep rule title>«,

« explication » : "<Semgrep rule explanation or message>»

},

« inaccessible » : <true|false>,

« sanitized_checked » : <true|false>,

« pas_un_vulnérabilité » : <true|false>

}

---

CONSEILS D'ANALYSE :

- Vous avez un accès complet à l'intégralité du dossier « gemini-cli/ ». Utilisez-le pour lire les implémentations de fonctions, les définitions de type, les utilitaires d'assistance et les analyseurs personnalisés.

- Pensez comme un chercheur en vulnérabilité humaine : tracez les entrées, analysez les chaînes d'appels, recherchez les conditions et déterminez les possibilités de contournement.

- Utilisez les commandes PowerShell et le filtrage basé sur le shell pour naviguer efficacement dans le code.

- Ne vous fiez pas uniquement aux messages de Semgrep. Basez vos décisions sur le flux de code réel.

---

CHRONOMÉTRAGE :

Cette tâche comprend 6115 résultats et peut prendre une journée complète ou deux. La précision et la profondeur de l'analyse sont plus importantes que la rapidité. Ne vous précipitez pas.

Commencez à examiner les résultats dans : gemini_semgrep_output.json

Phase 3 : Validation manuelle

Résumé de la validation de sécurité de Cursor IDE

À l'aide de Cursor IDE avec l'assistance Claude-4-Sonnet, nous avons validé les 12 pistes identifiées en suivant les étapes suivantes :

  • Vérification du débit de régulation (de l'entrée au puits)
  • Analyse de la technique de contournement
  • Développement de la preuve de concept (PoC) de base
  • Examen des mécanismes du système d'exploitation et des mesures d'atténuation

Après avoir terminé la validation initiale des 12 pistes, nous avons examiné chacune d'elles manuellement. Plusieurs pistes ont été jugées non pertinentes pour les raisons suivantes :

  1. La validation de principe ne tenait pas compte de certaines contraintes.
  2. La vulnérabilité avait très peu de chances d'être exploitée.
  3. Le vecteur d'attaque nécessitait un niveau d'accès initial irréaliste (par exemple, la possibilité d'exécuter du code via des scripts GitHub Actions).

À la suite de cet examen, trois problèmes potentiels persistaient. L'un d'entre eux, un vecteur d'injection de commandes sur macOS, a été écarté car l'API utilisée pour générer des processus atténuait le risque.

Cela a laissé deux vecteurs valides pour une analyse plus approfondie.

Phase 4 : Confirmation de l'exploitation

Deux exploits de preuve de concept ont été développés et testés. Les recherches de Cyera ont confirmé que l'injection de commandes et l'injection rapide sont exploitables dans les environnements de production.

Durée totale de recherche : 2 jours entre l'analyse initiale et la confirmation des vulnérabilités.

Détails des problèmes

Problème 1 : Injection de la commande d'installation de l'extension VS Code (problème 433939935)

Lieu : /Paquets/cli/src/ui/commands/idecommand.ts:136

La vulnérabilité existe dans le gestionnaire d'installation de l'extension VS Code :

const command = `$ {VSCODE_COMMAND} --install-extension $ {vsixPath} --force` ; execSync (commande) ;

La variable vSixPath, obtenue à partir des résultats de glob.sync (), est directement interpolée dans une commande shell sans nettoyage.

Vecteur d'attaque : Un attaquant ayant accès au système de fichiers peut créer un fichier .vsix malveillant dont le nom contient des métacaractères shell. Lorsque l'utilisateur exécute /ide install, le nom de fichier malveillant déclenche l'injection de commandes.

Exemple : Un fichier nommé « extension.vsix » ; malicious_command ; echo "exécuterait malicious_command lors du traitement.

Impact de la plateforme : Les systèmes Linux et macOS sont vulnérables. Les systèmes Windows sont protégés par hasard en raison d'un bogue de la bibliothèque glob qui empêche la découverte de fichiers avec des chemins absolus.

Problème 2 : contournement de la validation des commandes Shell via une injection rapide (problème 433939640)

Lieu : /packages/core/src/tools/shell.ts:112

La fonction de validation des commandes shell implémente un filtrage de substitution de commandes incomplet :

if (command.includes ('$ (')) {

return {allowed : false, reason : « La substitution de commande à l'aide de $ () n'est pas autorisée »} ;}

La validation bloque la syntaxe $ () mais ne bloque pas la substitution de commandes backtick (```), fournissant un mécanisme de contournement équivalent.

Vecteur d'attaque :

Un attaquant capable d'influencer les instructions traitées par Gemini CLI peut injecter des commandes en utilisant la substitution backtick. Le modèle d'IA, qui suit les instructions de l'utilisateur ou les invites malveillantes contenues dans les fichiers analysés, peut exécuter des commandes contenant des backticks.

Exemple : La commande echo « data \ \ malicious_command » contourne la validation, tandis que la commande echo « data$ (malicious_command) » est correctement bloquée.

Des recherches récentes ont mis en évidence différentes méthodes d'injection rapide dans différents modèles d'IA :

  • Navigateur IA Perplexity Comet: Des chercheurs de Brave ont identifié une faille critique permettant aux attaquants d'injecter des instructions malveillantes dans des captures d'écran ou du contenu Web masqué. Lorsque les utilisateurs interagissent avec ce type de contenu, l'IA traite par inadvertance ces commandes cachées, ce qui peut entraîner des actions non autorisées, telles que l'exfiltration de données. Actualités sur la cybersécurité
  • Défi LLMail-Inject: Une étude intitulée LLMail-Injecter présente un ensemble de données dérivé d'un défi simulant des scénarios réalistes dans lesquels des attaquants injectent des instructions malveillantes dans des e-mails. Le défi impliquait des participants qui tentaient d'exploiter des modèles de langage étendus (LLM) pour déclencher des actions non autorisées par le biais d'interactions par e-mail. arXiv

Ces études démontrent les diverses méthodes permettant d'exécuter des attaques par injection rapide, soulignant la nécessité de mettre en place des mesures de sécurité robustes dans les systèmes d'IA pour atténuer ces risques.

Clips PoC

<aside>♻️

AJOUTEZ DES CLIPS POC ICI

</aside>

Impact technique

Les vulnérabilités identifiées permettent l'exécution de commandes avec les mêmes privilèges que le processus Gemini CLI. L'exploitation pourrait entraîner :

  • Accès aux variables et aux informations d'identification de l'environnement de développement
  • Modification du code source et des fichiers de configuration
  • Installation de portes dérobées persistantes
  • Exfiltration des artefacts du modèle et des données d'entraînement

De tels risques ont des précédents concrets. Par exemple, des données de développement d'IA accessibles au public ou un stockage dans le cloud mal configuré ont déjà entraîné la divulgation d'informations sensibles :

Ces vulnérabilités d'injection de commandes sont particulièrement préoccupantes dans les environnements de développement de l'IA car :

  • Les données d'entraînement des modèles et les algorithmes propriétaires sont fréquemment accessibles
  • Les clés d'API et les informations d'identification cloud sont souvent stockées dans des environnements de développement
  • Les pipelines CI/CD peuvent être compromis par du code injecté ou modifié

Une efficacité accrue dans la découverte des vulnérabilités grâce à une approche augmentée par LLM

En s'appuyant sur une méthodologie augmentée par un modèle de langage large (LLM), Cyera a observé des améliorations substantielles en termes d'efficacité de la découverte des vulnérabilités :

  • Résultats initiaux : 6 115 problèmes potentiels identifiés à l'aide du SEMGREP.
  • Réduction du triage : réduction de 99,8 % des faux positifs grâce à l'analyse LLM.
  • Délai de découverte : le délai entre le scan initial et la confirmation des vulnérabilités a été réduit à 48 heures.
  • Exigences relatives à l'examen manuel : Limité à 12 pistes nécessitant une validation humaine, ce qui représente 0,2 % des résultats initiaux.

L'examen manuel traditionnel de 6 115 résultats nécessiterait environ 300 à 500 heures, en supposant 3 à 5 minutes par résultat. L'approche basée sur le LLM a condensé cela en 16 heures de travail de validation ciblé.

Outils d'IA dans la recherche sur la sécurité

L'intégration des outils d'IA dans la recherche sur la sécurité a marqué le début d'une nouvelle ère d'automatisation et d'efficacité. Par exemple, l'introduction par Microsoft d'agents d'IA dans sa plateforme Security Copilot vise à automatiser les tâches répétitives de cybersécurité, atténuant ainsi l'épuisement des analystes et améliorant l'efficacité opérationnelle (https://www.axios.com/2025/03/24/microsoft-ai-agents-cybersecurity?utm_source=chatgpt.com).

De même, l'outil HexStrike basé sur l'IA a été utilisé pour cibler rapidement les vulnérabilités des systèmes Citrix, démontrant ainsi le potentiel de l'IA pour accélérer l'exploitation des failles de sécurité (https://www.techradar.com/pro/security/new-ai-powered-hexstrike-tool-is-being-used-to-target-multiple-citrix-security-vulnerabilities ? utm_source=chatgpt.com).

En outre, des recherches telles que « PentestGPT : An LLM-powered Automatic Penetration Testing Tool » explorent l'application des LLM aux tests d'intrusion, en soulignant leur capacité à automatiser des évaluations de sécurité complexes (https://arxiv.org/abs/2308.06782?utm_source=chatgpt.com).

Lectures complémentaires sur la recherche en sécurité assistée par l'IA

Pour ceux qui souhaitent approfondir le rôle de l'IA dans la recherche sur la sécurité, les ressources suivantes fournissent des informations précieuses :

  • Audits de sécurité assistés par l'IA : un guide pratique avec des applications réelles (https://medium.com/oak-security/ai-assisted-security-audits-0bd76608e3be) — Une exploration des frameworks d'IA combinant l'analyse statique traditionnelle avec la génération de règles basée sur le LLM.
  • PentestGPT : un outil de test d'intrusion automatique basé sur LLM (https://arxiv.org/abs/2308.06782) — Une étude sur l'application des LLM à l'automatisation des processus de tests d'intrusion.
  • Le piratage, une méthode paresseuse : LLM Augmented Pentesting (https://arxiv.org/abs/2409.09493) — Recherche sur l'intégration des LLM dans les flux de travail des tests d'intrusion afin d'améliorer l'efficacité.

Mesures d'atténuation

Les organisations utilisant la CLI Gemini doivent immédiatement passer à la dernière version.
Google a publié des correctifs corrigeant ces deux vulnérabilités.

Pour une défense en profondeur :

  • Restreindre l'accès du système de fichiers aux répertoires d'installation de Gemini CLI
  • Mettre en œuvre des politiques d'exécution limitant les capacités des commandes shell
  • Surveillez les modèles d'exécution de commandes suspects

Remerciements

Cyera remercie l'équipe du programme Vulnerability Rewards de Google pour sa réponse rapide et sa gestion professionnelle de ces problèmes de sécurité. L'équipe VRP a validé, trié et coordonné les mesures correctives dans les délais de divulgation standard.

Conclusion

Cette recherche démontre l'efficacité des tests de sécurité augmentés par LLM pour identifier les vulnérabilités complexes des infrastructures d'IA modernes. La combinaison de la numérisation automatique, du triage intelligent et de la validation ciblée a permis de réduire à deux jours un effort manuel de deux semaines tout en maintenant une précision élevée.

Les outils d'IA étant de plus en plus intégrés aux flux de développement, la sécurisation de ces interfaces devient essentielle pour protéger la propriété intellectuelle, les données des clients et l'intégrité de l'infrastructure. Les vulnérabilités découvertes soulignent l'importance d'une validation complète des entrées et les risques inhérents à la construction de commandes shell à partir d'entrées contrôlées par l'utilisateur.

Les organisations qui développent ou déploient des outils de ligne de commande d'IA doivent mettre en œuvre une validation stricte des entrées, éviter l'interpolation des commandes shell et auditer régulièrement leurs postures de sécurité à l'aide de techniques automatisées et manuelles.

Download Report

De l'invite à l'exploitation : Cyera Research Labs dévoile des vulnérabilités liées aux commandes et à l'injection rapide dans la CLI Gemini

Faits marquants

  • Cyera Research Labs a identifié deux failles de sécurité, l'injection de commandes et l'injection rapide, dans l'outil Gemini CLI de Google.
  • Les deux vulnérabilités ont permis aux attaquants d'exécuter des commandes arbitraires avec les mêmes privilèges que le processus CLI.
  • Google a reconnu les résultats et a publié des correctifs par le biais de son programme Vulnerability Rewards (VRP).
  • La découverte a été réalisée à l'aide de la méthodologie de recherche sur les vulnérabilités augmentée par l'IA de Cyera, démontrant comment les grands modèles de langage (LLM) peuvent accélérer la découverte de sécurité dans le monde réel.

Ce que nous avons découvert et pourquoi c'est important

Cyera Research Labs a découvert deux vulnérabilités exploitables dans la CLI Gemini de Google, une interface en ligne de commande qui permet aux développeurs d'interagir directement avec la famille de grands modèles de langage Gemini.

Ces problèmes, identifiés sous les numéros 433939935 et 433939640, ont permis aux attaquants d'exécuter des commandes arbitraires, soit en exploitant la logique d'installation de l'extension VS Code, soit en utilisant des techniques d'injection rapide.

Si elles étaient exploitées, ces vulnérabilités pourraient permettre aux attaquants d'accéder à des environnements de développement sensibles, à des informations d'identification et à des données de modèles d'IA. La réponse rapide et les mesures correctives apportées par Google par le biais de son VRP reflètent la gravité de ces problèmes et l'importance croissante de sécurisation des outils de développement d'IA.

À propos de GEMINI CL

CLI Gemini est un outil d'interface en ligne de commande développé par Google qui permet aux développeurs d'interagir avec la famille de grands modèles de langage Gemini directement depuis le terminal. Il fournit des fonctionnalités pour des tâches telles que la génération de texte, l'analyse de code et l'intégration des fonctionnalités de Gemini dans des flux de travail ou des applications locaux. L'outil est conçu pour rationaliser l'expérimentation et le développement avec les modèles Gemini sans nécessiter d'interface Web.

Pourquoi les outils alimentés par l'IA ont besoin d'une protection supplémentaire

Les environnements de développement de l'IA sont particulièrement exposés car ils relient souvent les entrées des utilisateurs, l'inférence de modèles et les actions au niveau du système. Les vulnérabilités de ces outils peuvent avoir des répercussions en cascade, pouvant entraîner un accès non autorisé à la propriété intellectuelle, des déploiements mal configurés ou la compromission des données de formation.

Les résultats de Cyera soulignent que l'injection rapide n'est pas uniquement une préoccupation au niveau du modèle - cela peut directement compromettre le système lorsque les interfaces en langage naturel interagissent avec les mécanismes d'exécution du code.

L'approche augmentée par l'IA à la base de cette découverte

L'équipe de recherche de Cyera a utilisé un Méthodologie augmentée par le LLM pour accélérer la découverte des vulnérabilités :

  • Analyse statique automatisée: Une analyse Semgrep a identifié 6 115 problèmes potentiels dans la base de code TypeScript de Gemini CLI.
  • Triage alimenté par LLM: Une invite d'audit spécialisée a analysé chaque résultat pour en déterminer l'exploitabilité, en limitant les résultats à 12 pistes en quelques heures au lieu de plusieurs semaines.
  • Validation manuelle: Utilisation Curseur IDE et Claude 4 Sonnet, les chercheurs ont validé et confirmé deux vulnérabilités exploitables en 48 heures.
  • Gains d'efficacité: Ce processus a permis de Réduction de 99,8 % des faux positifs et ont réduit le temps d'analyse d'environ 300 à 500 heures à seulement 16 heures.

Contexte

Les recherches de Cyera en matière de sécurité se concentrent sur les vulnérabilités des infrastructures d'IA en raison de leur position stratégique dans les piles technologiques modernes. Les interfaces de ligne de commande AI représentent des limites de confiance critiques entre le traitement du langage naturel et l'exécution du système. Les vulnérabilités de ces composants ont un impact direct sur les postures de sécurité des données dans les environnements cloud, d'IA et sur site.

Lorsque des outils d'IA tels que Gemini CLI sont compromis, l'impact technique va au-delà du processus immédiat. Ces outils accèdent généralement aux environnements de développement, aux fichiers de configuration, aux informations d'identification et aux artefacts de modèle. Une exploitation réussie fournit aux attaquants un accès privilégié à la propriété intellectuelle, aux configurations de déploiement et potentiellement aux données des clients traitées via des flux de travail d'IA.

Méthodologie de recherche

La recherche a utilisé une approche systématique combinant une analyse statique avec une validation des vulnérabilités basée sur LLM :

Phase 1 : Analyse statique automatisée

L'analyse SEMGREP a identifié 6 115 problèmes de sécurité potentiels dans la base de code TypeScript de la CLI Gemini. La configuration de numérisation comprenait les éléments suivants :

  • Règles de sécurité génériques pour les modèles de vulnérabilité courants
  • Contrôles de sécurité spécifiques à TypeScript
  • Règles de détection des vulnérabilités logiques ciblant les problèmes de flux de contrôle

Phase 2 : Triage alimenté par LLM

Une invite d'audit de sécurité spécialisée a traité les résultats du SEMGREP afin de déterminer l'exploitabilité. L'invite a analysé chaque résultat en fonction de critères spécifiques :

  • Accessibilité à partir de vecteurs d'entrée (arguments CLI, entrées d'API, fichiers de configuration, plugins)
  • Présence et efficacité de la désinfection des intrants
  • Exploitabilité réelle dans les configurations de production

Le processus de triage a réduit 6 115 résultats à 12 pistes pertinentes grâce à une analyse systématique du flux de code.

L'invite qui a été utilisée :

Vous êtes un agent d'audit de sécurité de l'IA professionnel. Vous analysez une grande base de code située dans le dossier « gemini-cli ». Vous avez un accès complet à tous les fichiers sources de ce dossier.

Vous recevez un fichier de sortie du scan Semgrep : « gemini_semgrep_output.json », qui contient quelques milliers de résultats. Votre travail consiste à trier chaque découverte et à déterminer si elle conduit à une vulnérabilité réelle et exploitable.

De plus, après avoir parcouru la sortie de semgrep, vous DEVEZ analyser le flux de code réel dans l'arbre des sources « gemini-cli » lorsque vous prenez des décisions.

---

ANALYSE PAR DÉCOUVERTE : PROCÉDEZ COMME SUIT :

1. Vérifiez l'accessibilité

Déterminez si le résultat est accessible à partir de l'un de ces vecteurs d'entrée :

- Arguments CLI (argv, argc, autres arguments d'environnement)

- Entrées de l'API REST (le cas échéant)

- Fichiers de modèles analysés : GGUF, fichiers de machines à sous, tokenizer ou fichiers de vocabulaire

- Fichiers de configuration (par exemple, JSON, YAML, TOML)

- Interfaces distantes (ports, fichiers, RPC, différents protocoles)

- Processus d'authentification

- mécanismes de chargement des plugins/dlls/bin

Si le problème n'est pas accessible via l'une des méthodes ci-dessus, marquez-le comme « inaccessible » : vrai.

2. Vérifier la désinfection ou la validation

Si le problème est résolu, analysez le contrôle complet et le flux de données pour vérifier si l'entrée est nettoyée ou validée avant d'atteindre le puits vulnérable.

- Recherchez la logique de validation des entrées, les vérifications des limites, la validation du schéma, les vérifications des octets magiques, les contraintes de longueur d'entrée, etc.

- Déterminez si la validation est manquante, faible ou contournable.

3. Revérifiez le flux pour plus de confiance

Si vous suspectez une faille :

- Réacheminez le flux complet de l'entrée au puits

- Vérifiez qu'aucune branche de validation n'a été manquée

- Assurez-vous que votre raisonnement est solide et enraciné dans le code source

---

UTILISER LE TERMINAL POUR UNE ANALYSE INTELLIGENTE DES FICHIERS (macOS/Linux)

Pour lire et analyser efficacement des fichiers volumineux sans consommer trop de mémoire, utilisez des outils shell natifs qui traitent les données en streaming au lieu de tout charger en mémoire :

- Utilisez « grep -R « pattern » .` ou `grep -E « regex » file.txt pour localiser les appels de fonction ou les modèles de données pertinents (équivalent à la chaîne « Select-String » de PowerShell).

- Utilisez « tail -n 50 file.txt » ou « head -n 100 file.txt » pour lire des sections partielles d'un fichier.

- Combinez les filtres avec `awk`, `sed` et `grep` pour extraire ou transformer des données, par exemple :

grep « function » script.sh | awk '{print $2}'

- Utilisez `awk` ou `sed` pour l'analyse en ligne des corps de fonctions ou des structures de configuration :

awk '/start_pattern/, /end_pattern/' file.txt

- Utilisez `wc -c file.txt` ou `du -h file.txt` pour vérifier la taille des fichiers.

- Évitez d'utiliser « cat file.txt » sur de très gros fichiers, sauf si vous diffusez ou redirigez la sortie.

Appliquez ces techniques lors de la traversée du code et de l'analyse de fichiers pour optimiser l'évolutivité lors de la gestion de fichiers source ou journaux volumineux.

---

SI LA DÉCOUVERTE EST UNE VULNÉRABILITÉ VALIDE :

Ajoutez un objet JSON à un fichier nommé security_report_ {current_date} .json au format suivant :

{

« localisation_exacte » : {

« fichier » : "<filename>«,

« fonction » : "<function name if applicable>«,

« ligne » : <line number>

},

<Short explanation of the vulnerability and relevant CWE (e.g., CWE-125 : Out-of-Bounds Read) >« explication_vulnérabilité » : « »,

<Why input validation is insufficient or missing>« assainissement_validation » : "«,

« input_exploit_example » : {

« vector » : « <'argv' | 'API rest' | 'fichier de configuration' | 'fichier modèle' | 'fichier d'encoche'> »,

<Concrete example of input that would trigger the vulnerability>« exemple_input » : "»

}

}

---

SI LA DÉCOUVERTE N'EST PAS UNE VÉRITABLE VULNÉRABILITÉ :

Ajoutez un objet JSON à un fichier nommé unrelevant_leads_ {current_date} .json au format ci-dessous :

{

« description_du problème » : {

« titre » : "<Semgrep rule title>«,

« explication » : "<Semgrep rule explanation or message>»

},

« inaccessible » : <true|false>,

« sanitized_checked » : <true|false>,

« pas_un_vulnérabilité » : <true|false>

}

---

CONSEILS D'ANALYSE :

- Vous avez un accès complet à l'intégralité du dossier « gemini-cli/ ». Utilisez-le pour lire les implémentations de fonctions, les définitions de type, les utilitaires d'assistance et les analyseurs personnalisés.

- Pensez comme un chercheur en vulnérabilité humaine : tracez les entrées, analysez les chaînes d'appels, recherchez les conditions et déterminez les possibilités de contournement.

- Utilisez les commandes PowerShell et le filtrage basé sur le shell pour naviguer efficacement dans le code.

- Ne vous fiez pas uniquement aux messages de Semgrep. Basez vos décisions sur le flux de code réel.

---

CHRONOMÉTRAGE :

Cette tâche comprend 6115 résultats et peut prendre une journée complète ou deux. La précision et la profondeur de l'analyse sont plus importantes que la rapidité. Ne vous précipitez pas.

Commencez à examiner les résultats dans : gemini_semgrep_output.json

Phase 3 : Validation manuelle

Résumé de la validation de sécurité de Cursor IDE

À l'aide de Cursor IDE avec l'assistance Claude-4-Sonnet, nous avons validé les 12 pistes identifiées en suivant les étapes suivantes :

  • Vérification du débit de régulation (de l'entrée au puits)
  • Analyse de la technique de contournement
  • Développement de la preuve de concept (PoC) de base
  • Examen des mécanismes du système d'exploitation et des mesures d'atténuation

Après avoir terminé la validation initiale des 12 pistes, nous avons examiné chacune d'elles manuellement. Plusieurs pistes ont été jugées non pertinentes pour les raisons suivantes :

  1. La validation de principe ne tenait pas compte de certaines contraintes.
  2. La vulnérabilité avait très peu de chances d'être exploitée.
  3. Le vecteur d'attaque nécessitait un niveau d'accès initial irréaliste (par exemple, la possibilité d'exécuter du code via des scripts GitHub Actions).

À la suite de cet examen, trois problèmes potentiels persistaient. L'un d'entre eux, un vecteur d'injection de commandes sur macOS, a été écarté car l'API utilisée pour générer des processus atténuait le risque.

Cela a laissé deux vecteurs valides pour une analyse plus approfondie.

Phase 4 : Confirmation de l'exploitation

Deux exploits de preuve de concept ont été développés et testés. Les recherches de Cyera ont confirmé que l'injection de commandes et l'injection rapide sont exploitables dans les environnements de production.

Durée totale de recherche : 2 jours entre l'analyse initiale et la confirmation des vulnérabilités.

Détails des problèmes

Problème 1 : Injection de la commande d'installation de l'extension VS Code (problème 433939935)

Lieu : /Paquets/cli/src/ui/commands/idecommand.ts:136

La vulnérabilité existe dans le gestionnaire d'installation de l'extension VS Code :

const command = `$ {VSCODE_COMMAND} --install-extension $ {vsixPath} --force` ; execSync (commande) ;

La variable vSixPath, obtenue à partir des résultats de glob.sync (), est directement interpolée dans une commande shell sans nettoyage.

Vecteur d'attaque : Un attaquant ayant accès au système de fichiers peut créer un fichier .vsix malveillant dont le nom contient des métacaractères shell. Lorsque l'utilisateur exécute /ide install, le nom de fichier malveillant déclenche l'injection de commandes.

Exemple : Un fichier nommé « extension.vsix » ; malicious_command ; echo "exécuterait malicious_command lors du traitement.

Impact de la plateforme : Les systèmes Linux et macOS sont vulnérables. Les systèmes Windows sont protégés par hasard en raison d'un bogue de la bibliothèque glob qui empêche la découverte de fichiers avec des chemins absolus.

Problème 2 : contournement de la validation des commandes Shell via une injection rapide (problème 433939640)

Lieu : /packages/core/src/tools/shell.ts:112

La fonction de validation des commandes shell implémente un filtrage de substitution de commandes incomplet :

if (command.includes ('$ (')) {

return {allowed : false, reason : « La substitution de commande à l'aide de $ () n'est pas autorisée »} ;}

La validation bloque la syntaxe $ () mais ne bloque pas la substitution de commandes backtick (```), fournissant un mécanisme de contournement équivalent.

Vecteur d'attaque :

Un attaquant capable d'influencer les instructions traitées par Gemini CLI peut injecter des commandes en utilisant la substitution backtick. Le modèle d'IA, qui suit les instructions de l'utilisateur ou les invites malveillantes contenues dans les fichiers analysés, peut exécuter des commandes contenant des backticks.

Exemple : La commande echo « data \ \ malicious_command » contourne la validation, tandis que la commande echo « data$ (malicious_command) » est correctement bloquée.

Des recherches récentes ont mis en évidence différentes méthodes d'injection rapide dans différents modèles d'IA :

  • Navigateur IA Perplexity Comet: Des chercheurs de Brave ont identifié une faille critique permettant aux attaquants d'injecter des instructions malveillantes dans des captures d'écran ou du contenu Web masqué. Lorsque les utilisateurs interagissent avec ce type de contenu, l'IA traite par inadvertance ces commandes cachées, ce qui peut entraîner des actions non autorisées, telles que l'exfiltration de données. Actualités sur la cybersécurité
  • Défi LLMail-Inject: Une étude intitulée LLMail-Injecter présente un ensemble de données dérivé d'un défi simulant des scénarios réalistes dans lesquels des attaquants injectent des instructions malveillantes dans des e-mails. Le défi impliquait des participants qui tentaient d'exploiter des modèles de langage étendus (LLM) pour déclencher des actions non autorisées par le biais d'interactions par e-mail. arXiv

Ces études démontrent les diverses méthodes permettant d'exécuter des attaques par injection rapide, soulignant la nécessité de mettre en place des mesures de sécurité robustes dans les systèmes d'IA pour atténuer ces risques.

Clips PoC

<aside>♻️

AJOUTEZ DES CLIPS POC ICI

</aside>

Impact technique

Les vulnérabilités identifiées permettent l'exécution de commandes avec les mêmes privilèges que le processus Gemini CLI. L'exploitation pourrait entraîner :

  • Accès aux variables et aux informations d'identification de l'environnement de développement
  • Modification du code source et des fichiers de configuration
  • Installation de portes dérobées persistantes
  • Exfiltration des artefacts du modèle et des données d'entraînement

De tels risques ont des précédents concrets. Par exemple, des données de développement d'IA accessibles au public ou un stockage dans le cloud mal configuré ont déjà entraîné la divulgation d'informations sensibles :

Ces vulnérabilités d'injection de commandes sont particulièrement préoccupantes dans les environnements de développement de l'IA car :

  • Les données d'entraînement des modèles et les algorithmes propriétaires sont fréquemment accessibles
  • Les clés d'API et les informations d'identification cloud sont souvent stockées dans des environnements de développement
  • Les pipelines CI/CD peuvent être compromis par du code injecté ou modifié

Une efficacité accrue dans la découverte des vulnérabilités grâce à une approche augmentée par LLM

En s'appuyant sur une méthodologie augmentée par un modèle de langage large (LLM), Cyera a observé des améliorations substantielles en termes d'efficacité de la découverte des vulnérabilités :

  • Résultats initiaux : 6 115 problèmes potentiels identifiés à l'aide du SEMGREP.
  • Réduction du triage : réduction de 99,8 % des faux positifs grâce à l'analyse LLM.
  • Délai de découverte : le délai entre le scan initial et la confirmation des vulnérabilités a été réduit à 48 heures.
  • Exigences relatives à l'examen manuel : Limité à 12 pistes nécessitant une validation humaine, ce qui représente 0,2 % des résultats initiaux.

L'examen manuel traditionnel de 6 115 résultats nécessiterait environ 300 à 500 heures, en supposant 3 à 5 minutes par résultat. L'approche basée sur le LLM a condensé cela en 16 heures de travail de validation ciblé.

Outils d'IA dans la recherche sur la sécurité

L'intégration des outils d'IA dans la recherche sur la sécurité a marqué le début d'une nouvelle ère d'automatisation et d'efficacité. Par exemple, l'introduction par Microsoft d'agents d'IA dans sa plateforme Security Copilot vise à automatiser les tâches répétitives de cybersécurité, atténuant ainsi l'épuisement des analystes et améliorant l'efficacité opérationnelle (https://www.axios.com/2025/03/24/microsoft-ai-agents-cybersecurity?utm_source=chatgpt.com).

De même, l'outil HexStrike basé sur l'IA a été utilisé pour cibler rapidement les vulnérabilités des systèmes Citrix, démontrant ainsi le potentiel de l'IA pour accélérer l'exploitation des failles de sécurité (https://www.techradar.com/pro/security/new-ai-powered-hexstrike-tool-is-being-used-to-target-multiple-citrix-security-vulnerabilities ? utm_source=chatgpt.com).

En outre, des recherches telles que « PentestGPT : An LLM-powered Automatic Penetration Testing Tool » explorent l'application des LLM aux tests d'intrusion, en soulignant leur capacité à automatiser des évaluations de sécurité complexes (https://arxiv.org/abs/2308.06782?utm_source=chatgpt.com).

Lectures complémentaires sur la recherche en sécurité assistée par l'IA

Pour ceux qui souhaitent approfondir le rôle de l'IA dans la recherche sur la sécurité, les ressources suivantes fournissent des informations précieuses :

  • Audits de sécurité assistés par l'IA : un guide pratique avec des applications réelles (https://medium.com/oak-security/ai-assisted-security-audits-0bd76608e3be) — Une exploration des frameworks d'IA combinant l'analyse statique traditionnelle avec la génération de règles basée sur le LLM.
  • PentestGPT : un outil de test d'intrusion automatique basé sur LLM (https://arxiv.org/abs/2308.06782) — Une étude sur l'application des LLM à l'automatisation des processus de tests d'intrusion.
  • Le piratage, une méthode paresseuse : LLM Augmented Pentesting (https://arxiv.org/abs/2409.09493) — Recherche sur l'intégration des LLM dans les flux de travail des tests d'intrusion afin d'améliorer l'efficacité.

Mesures d'atténuation

Les organisations utilisant la CLI Gemini doivent immédiatement passer à la dernière version.
Google a publié des correctifs corrigeant ces deux vulnérabilités.

Pour une défense en profondeur :

  • Restreindre l'accès du système de fichiers aux répertoires d'installation de Gemini CLI
  • Mettre en œuvre des politiques d'exécution limitant les capacités des commandes shell
  • Surveillez les modèles d'exécution de commandes suspects

Remerciements

Cyera remercie l'équipe du programme Vulnerability Rewards de Google pour sa réponse rapide et sa gestion professionnelle de ces problèmes de sécurité. L'équipe VRP a validé, trié et coordonné les mesures correctives dans les délais de divulgation standard.

Conclusion

Cette recherche démontre l'efficacité des tests de sécurité augmentés par LLM pour identifier les vulnérabilités complexes des infrastructures d'IA modernes. La combinaison de la numérisation automatique, du triage intelligent et de la validation ciblée a permis de réduire à deux jours un effort manuel de deux semaines tout en maintenant une précision élevée.

Les outils d'IA étant de plus en plus intégrés aux flux de développement, la sécurisation de ces interfaces devient essentielle pour protéger la propriété intellectuelle, les données des clients et l'intégrité de l'infrastructure. Les vulnérabilités découvertes soulignent l'importance d'une validation complète des entrées et les risques inhérents à la construction de commandes shell à partir d'entrées contrôlées par l'utilisateur.

Les organisations qui développent ou déploient des outils de ligne de commande d'IA doivent mettre en œuvre une validation stricte des entrées, éviter l'interpolation des commandes shell et auditer régulièrement leurs postures de sécurité à l'aide de techniques automatisées et manuelles.

Download Report

Experience Cyera

To protect your dataverse, you first need to discover what’s in it. Let us help.

Get a demo  →
Decorative