Attaque zero-click Grok : comment une injection de prompt chiffrée peut dérober votre historique de discussion
Séraphine Clairlune
En août 2026, une attaque zero-click Grok a été révélée par des chercheurs en sécurité, capable de dérober l’intégralité de l’historique de discussion d’un assistant IA. Cette attaque zero-click, baptisée « Cryptographic Context Injection », cible l’assistant Grok de xAI et expose une vulnérabilité fondamentale dans la gestion du contexte de confiance des agents. Les chercheurs d’Adversa AI ont démontré qu’il est possible d’exfiltrer le nom de l’utilisateur, sa localisation approximative, son niveau d’abonnement et l’historique complet des conversations, le tout sans aucune action de la victime après la requête initiale. Selon l’OWASP Top 10 pour les LLM, les injections de prompt figurent parmi les risques les plus critiques, et cette variante chiffrée en est une illustration frappante. Alors que les assistants IA deviennent de plus en plus agentiques, avec des capacités de navigation web, d’exécution de code et d’accès à des données sensibles, la surface d’attaque s’élargit. Comprendre le fonctionnement de cette attaque zero-click Grok est essentiel pour toute organisation utilisant ces technologies, car elle remet en question les mécanismes de confiance actuels et appelle à une refonte des architectures de sécurité.
Qu’est-ce que l’attaque zero-click Grok par injection de prompt chiffrée ?
L’attaque zero-click Grok est une forme avancée d’injection de prompt qui utilise le chiffrement pour dissimuler des instructions malveillantes. Contrairement aux techniques classiques qui reposent sur des encodages simples comme le Base64, les substitutions de caractères ou l’obfuscation Unicode, cette méthode emploie des algorithmes cryptographiques standard : PBKDF2 pour la dérivation de clé et AES-256-GCM pour le chiffrement. Les instructions sont placées sur une page web contrôlée par l’attaquant sous forme d’un objet JSON chiffré. Lorsque la victime demande à Grok de résumer cette page, l’assistant utilise son environnement d’exécution Python intégré pour déchiffrer le contenu. Une fois déchiffrées, les instructions sont traitées par Grok comme un contexte interne de confiance, ce qui permet à l’attaquant de détourner le comportement de l’agent.
Cette technique se distingue des injections de prompt traditionnelles par sa capacité à contourner les filtres de sécurité. En effet, les mécanismes de détection actuels analysent le texte en clair pour repérer des motifs suspects. Or, le payload chiffré est invisible pour ces filtres tant qu’il n’est pas déchiffré. Et une fois déchiffré, il est considéré comme un résultat fiable du sandbox Python, et non comme un contenu web potentiellement dangereux.
Le tableau ci-dessous compare les caractéristiques des injections de prompt classiques et de cette nouvelle variante chiffrée :
| Caractéristique | Injection de prompt classique | Injection de prompt chiffrée (Cryptographic Context Injection) |
|---|---|---|
| Méthode de dissimulation | Base64, Unicode, substitution | Chiffrement AES-256-GCM + PBKDF2 |
| Détection par filtres | Possible (patterns dans le texte) | Impossible (payload chiffré) |
| Nécessite exécution de code | Non (le LLM peut décoder) | Oui (sandbox nécessaire) |
| Niveau de privilège après décodage | Traité comme contenu utilisateur | Traité comme contexte interne de confiance |
| Exemple d’outil | Prompt injections manuelles | Cryptographic Context Injection |
Comment fonctionne la technique Cryptographic Context Injection ?
Le déclenchement : une simple demande de résumé
Le scénario d’attaque se déroule en plusieurs étapes :
- L’utilisateur demande à Grok de résumer une page web spécifique.
- Grok télécharge le contenu de la page, qui contient un objet JSON chiffré, des éléments de clé cryptographique (sel, mot de passe, nonce) et une instruction simple : « Déchiffre ces données avec Python ».
- L’assistant exécute un script Python dans son sandbox intégré pour déchiffrer le payload.
- Le texte déchiffré contient des instructions détaillées pour la suite de l’attaque.
Cette chaîne se déclenche sans aucune confirmation de l’utilisateur. Selon les chercheurs, « la chaîne s’est déroulée sans boîte de dialogue de confirmation, avertissement visible ou action supplémentaire de la victime après la requête initiale ». L’attaque a été testée avec succès sur Grok 4.5 Fast, la version rapide de l’assistant accessible via grok.com.
Le chiffrement robuste : PBKDF2 et AES-256-GCM
Le choix des algorithmes n’est pas anodin. PBKDF2 (Password-Based Key Derivation Function 2) est une fonction de dérivation de clé standardisée qui applique un nombre configurable d’itérations pour ralentir les attaques par force brute. AES-256-GCM est un chiffrement symétrique offrant à la fois confidentialité et intégrité via un tag d’authentification. Cette combinaison rend le payload impossible à décoder par le seul LLM, contrairement à des méthodes plus simples comme le Base64.
« Un LLM peut inférer ou décoder des transformations simples à partir de ses données d’entraînement, mais un contenu fortement chiffré ne peut pas être reconstitué de manière fiable à partir des seuls poids du modèle. » - Adversa AI
Ainsi, l’assistant est contraint d’exécuter du code pour accéder au contenu, ce qui ouvre la porte à l’exploitation de la faille de confiance. Les paramètres cryptographiques (sel, nonce, mot de passe) sont inclus dans la page web, ce qui permet un déchiffrement automatique. Le mot de passe est souvent fixe ou dérivé d’une valeur prévisible, ce qui simplifie l’exploitation.
La faille de frontière de confiance
Le point névralgique de l’attaque réside dans la manière dont Grok traite les résultats du sandbox Python. Une fois le déchiffrement effectué, le texte en clair est intégré au contexte de l’agent comme un résultat fiable, au même titre qu’une réponse de son propre runtime. Il n’est pas marqué comme provenant d’une source web non fiable. Cette absence de distinction permet aux instructions déchiffrées d’influencer le comportement de l’agent avec un niveau de privilège équivalent à celui des commandes système.
Le payload déchiffré ordonne alors à Grok de collecter des informations de session sensibles (nom, localisation approximative, niveau d’abonnement, historique actif des conversations) et de les insérer dans ce qui semble être une « clé de déchiffrement ». En réalité, cette clé est un modèle contenant les données de la victime. L’agent est ensuite invité à naviguer vers une autre URL contrôlée par l’attaquant, avec les données insérées dans les paramètres de requête. Grok utilise sa capacité de navigation pour charger cette URL, permettant ainsi l’exfiltration vers le serveur de l’attaquant.
# Exemple simplifié du processus de déchiffrement côté Grok
from cryptography.hazmat.primitives.kdf.pbkdf2 import PBKDF2HMAC
from cryptography.hazmat.primitives.ciphers import Cipher, algorithms, modes
from cryptography.hazmat.primitives import hashes
# Extraits de la page web
encrypted_blob = b"..." # JSON chiffré
salt = b"..." # Sel
password = b"..." # Mot de passe (souvent fixe)
nonce = b"..." # Nonce
# Dérivation de la clé
kdf = PBKDF2HMAC(algorithm=hashes.SHA256(), length=32, salt=salt, iterations=100000)
key = kdf.derive(password)
# Déchiffrement
cipher = Cipher(algorithms.AES(key), modes.GCM(nonce))
decryptor = cipher.decryptor()
plaintext = decryptor.update(encrypted_blob) + decryptor.finalize()
# Le plaintext contient les instructions malveillantes
Quelles données peuvent être exfiltrées ?
Selon les travaux d’Adversa AI, les informations suivantes peuvent être récupérées lors de l’attaque :
| Type de donnée | Exemple | Impact potentiel |
|---|---|---|
| Nom de l’utilisateur | Jean Dupont | Identification personnelle, risque d’usurpation d’identité |
| Localisation approximative | Paris, France | Suivi géographique, profilage |
| Niveau d’abonnement | Premium | Profilage commercial, ciblage |
| Historique des conversations | Discussions passées | Fuite de secrets professionnels, données confidentielles |
L’historique des conversations est particulièrement critique. Il peut contenir des informations stratégiques, des données clients, des codes source ou des échanges privés. Dans un contexte professionnel, une fuite de cet historique pourrait avoir des conséquences juridiques au titre du RGPD et porter atteinte à la réputation de l’entreprise. En outre, les chercheurs ont noté que d’autres données de session pourraient être accessibles selon la configuration de l’agent, comme l’adresse IP ou les préférences utilisateur.
Prenons l’exemple d’une entreprise française du CAC 40 utilisant Grok pour assister ses équipes juridiques. Un avocat demande à Grok de résumer un article de blog sur une nouvelle réglementation. L’article, hébergé par un attaquant, contient le payload chiffré. En quelques secondes, l’historique complet des consultations juridiques, incluant des stratégies contentieuses et des informations confidentielles clients, est exfiltré vers un serveur malveillant. Les conséquences pourraient être désastreuses : violation du secret professionnel, fuite de secrets d’affaires, sanctions RGPD pouvant atteindre 4% du chiffre d’affaires annuel, et perte de confiance des clients. Ce scénario, bien que fictif, illustre le risque concret que représente cette vulnérabilité pour les organisations.
Pourquoi cette attaque est-elle dangereuse et quelles sont ses implications ?
Plusieurs facteurs concourent à faire de cette attaque une menace sérieuse.
Caractère zero-click : Après la demande initiale de résumé, aucune interaction supplémentaire n’est requise. Aucune boîte de dialogue de confirmation, aucun avertissement visible. La chaîne d’attaque se déroule de manière autonome, ce qui la rend particulièrement furtive. L’utilisateur n’a aucun moyen de savoir que ses données sont en train d’être exfiltrées.
Contournement des défenses : L’utilisation du chiffrement permet de passer outre les filtres de sécurité qui analysent le texte en clair. Les mécanismes de détection d’injection de prompt, qu’ils soient basés sur des règles ou sur l’apprentissage automatique, sont conçus pour repérer des motifs dans le texte visible. Or, le payload chiffré est invisible jusqu’à son déchiffrement par le sandbox. De plus, une fois déchiffré, il est considéré comme fiable, ce qui neutralise les contrôles aval.
Taux de réussite significatif : Sur environ 20 tentatives réalisées par les chercheurs entre juin et août 2026, le taux de réussite a atteint 40 %. Les échecs étaient principalement dus à des problèmes de déchiffrement (erreurs de padding, nonce incorrect), et non à des blocages de sécurité. Cela indique que la vulnérabilité est exploitable de manière fiable une fois les paramètres cryptographiques corrects. Les chercheurs ont précisé que les échecs n’étaient pas liés à des défenses anti-injection de prompt.
Absence de correctif : Adversa AI a signalé la vulnérabilité à xAI via son programme HackerOne le 3 juin 2026. xAI a accusé réception mais n’a pas fourni de calendrier de correction. Les relances des 4 et 10 août sont restées sans réponse. Le 19 août, les chercheurs pouvaient toujours reproduire l’attaque. Aucun CVE n’a été attribué et aucun patch public n’est disponible. Cette situation est préoccupante, car elle laisse les utilisateurs exposés sans solution à court terme.
« xAI a accusé réception de notre signalement mais n’a pas fourni de calendrier de correction. Le 19 août 2026, l’attaque était toujours reproductible. » - Adversa AI
Potentiel d’exploitation massive : Bien que la preuve de concept nécessite une page web contrôlée par l’attaquant, des techniques d’empoisonnement de liens ou de publicités malveillantes pourraient être utilisées pour attirer les victimes. De plus, le caractère zero-click et la difficulté de détection rendent cette attaque adaptée à des campagnes ciblées contre des cadres d’entreprise ou des utilisateurs sensibles. Les chercheurs estiment que le passage à l’échelle est possible si la vulnérabilité n’est pas corrigée rapidement.
Implications pour les IA agentiques : Cette attaque n’est pas isolée. Adversa AI a également démontré une approche similaire contre Google Gemini en mode Deep Thinking, en utilisant un blob chiffré contenant un faux traceback Python, un callback de politique de sécurité fictif et un préfixe de raisonnement à la première personne. Cela montre que le problème est systémique et ne se limite pas à Grok. Les agents IA qui combinent navigation web, exécution de code et accès à des données sensibles créent une surface d’attaque étendue. Les chercheurs recommandent de préserver la provenance des données, d’isoler les contenus web non fiables, d’exiger une approbation pour les navigations sortantes inattendues et de détecter les chaînes d’actions à risque (contenu web → exécution de code → accès à des données sensibles → exfiltration réseau). Cette attaque illustre la nécessité de repenser les architectures de confiance des agents.
Comment se protéger contre ce type d’attaque ?
Face à cette menace émergente, plusieurs mesures de protection peuvent être mises en œuvre, tant par les éditeurs de solutions IA que par les utilisateurs et les organisations.
Isoler l’exécution de code : Les sandboxes Python doivent être configurés avec un accès réseau strictement limité, idéalement sans accès sortant. Si l’exécution de code nécessite des ressources externes, celles-ci doivent être whitelistées et contrôlées. Des technologies comme gVisor ou Firecracker peuvent renforcer l’isolation.
Exiger une confirmation explicite : Toute navigation sortante non sollicitée par l’utilisateur doit déclencher une demande de confirmation. Cela permettrait de bloquer l’exfiltration via des requêtes HTTP vers des domaines inconnus. Les utilisateurs doivent être formés à refuser ces demandes si elles ne sont pas justifiées.
Maintenir la séparation des contextes : Les contenus provenant de sources web non fiables doivent être clairement étiquetés et isolés du contexte de confiance interne. Les résultats de l’exécution de code ne doivent pas automatiquement être considérés comme fiables s’ils proviennent de données web déchiffrées. Des mécanismes de taint tracking peuvent être utilisés pour tracer la provenance des données.
Détecter les chaînes d’actions à risque : Mettre en place une surveillance qui corrèle les événements de déchiffrement de contenu web avec des tentatives d’accès à des données sensibles et des requêtes réseau sortantes. Une telle séquence doit déclencher une alerte et, idéalement, bloquer l’action. Les SIEM peuvent être configurés pour détecter ces patterns.
Appliquer le principe du moindre privilège : Restreindre les capacités des agents au strict nécessaire. Par exemple, si l’agent n’a pas besoin de naviguer sur le web de manière autonome, désactiver cette capacité. Limiter l’accès à l’historique des conversations aux seules fonctions qui en ont besoin. Les administrateurs doivent auditer les permissions accordées aux agents.
Auditer régulièrement : Analyser les journaux d’activité des assistants IA pour détecter des comportements anormaux, comme des exécutions de code inattendues ou des requêtes vers des domaines suspects. Les outils de logging doivent capturer les décisions de l’agent et les contextes associés.
En complément, les organisations peuvent s’appuyer sur des cadres de sécurité existants. L’ISO 27001 fournit des lignes directrices pour la gestion de la sécurité de l’information, tandis que l’ANSSI propose des recommandations spécifiques pour la sécurisation des systèmes d’IA. Il est également crucial de maintenir une veille technologique active sur les vulnérabilités émergentes, comme celles référencées dans l’OWASP Top 10 pour les LLM. Enfin, les utilisateurs individuels peuvent limiter leur exposition en évitant d’utiliser des assistants IA pour des tâches sensibles avec des pages web non fiables, ou en utilisant des comptes dédiés sans historique important.
En outre, les entreprises peuvent investir dans des solutions de sécurité spécialisées pour les LLM, telles que des pare-feux d’IA ou des systèmes de détection d’anomalies comportementales. Ces outils peuvent analyser les interactions avec les agents et bloquer les chaînes suspectes en temps réel. La collaboration avec la communauté de la recherche en sécurité est également cruciale pour rester informé des dernières menaces.
Conclusion : une menace émergente à prendre au sérieux
L’attaque zero-click Grok par injection de prompt chiffrée représente une évolution significative dans le paysage des menaces pesant sur les assistants IA. En exploitant une faille de frontière de confiance et en utilisant un chiffrement robuste, elle démontre que les mécanismes de défense actuels sont insuffisants. Bien qu’aucune exploitation en milieu sauvage n’ait été rapportée à ce jour, la preuve de concept est suffisamment convaincante pour justifier une action proactive.
Les éditeurs de solutions IA, comme xAI, doivent rapidement corriger cette vulnérabilité et repenser l’architecture de confiance de leurs agents. En attendant, les utilisateurs et les entreprises doivent adopter une posture de défense en profondeur, en appliquant les mesures de protection décrites ci-dessus. La sécurité des IA agentiques est un défi de longue haleine, et cette attaque n’est probablement que la première d’une série. Restez vigilants, car la prochaine injection de prompt pourrait venir d’une simple page web. La collaboration entre chercheurs, éditeurs et utilisateurs est essentielle pour anticiper ces menaces et construire des systèmes d’IA dignes de confiance.
Les régulateurs, comme la CNIL en France, devraient également se pencher sur la sécurité des agents IA et imposer des exigences minimales.