EN
en direct
IA

Chiffrer ses instructions suffit à contourner Grok et à exfiltrer l’historique de ses utilisateurs

Un chercheur d’Adversa a montré que chiffrer des instructions malveillantes avec PBKDF2 et AES-256-GCM suffit à contourner les garde-fous de Grok, qui les déchiffre puis les exécute comme sa propre sortie d’outil. xAI a été prévenu en juin, et l’assistant exfiltrait encore le nom, la localisation et l’historique de chat de ses utilisateurs le 20 août.

Un cube puzzle mélangé posé sur une surface sombre, une seule facette ambrée allumée parmi des cellules grises, symbolisant l’instruction déchiffrée au milieu du texte chiffré.

Juin 2026. 20 août 2026. PBKDF2. Un chercheur d’Adversa a trouvé un moyen d’une simplicité désarmante de contourner les garde-fous de Grok : chiffrer l’instruction malveillante. Le modèle déchiffre la charge dans son bac à sable d’exécution de code, l’exécute comme sa propre sortie d’outil, et exfiltre le nom, la localisation et l’historique de chat de l’utilisateur vers le serveur de l’attaquant. xAI a été prévenu en juin — au moment de la publication, l’assistant continuait de livrer les données.

La technique porte un nom : Cryptographic Context Injection. Elle n’est que la dernière itération d’un cycle où chaque garde-fou ajouté ouvre un nouveau vecteur.

L’attaque : le chiffrement passe là où le texte est bloqué

Les injections de prompt exploitent la tendance des modèles à obéir aux instructions, y compris quand elles sont glissées dans un e-mail ou une page web que l’assistant est censé résumer. La parade historique des éditeurs est un garde-fou qui repère les instructions suspectes et interdit leur exécution.

Rony Utevsky, chercheur chez Adversa, a découvert un moyen de contourner entièrement ce filtre : ne pas écrire l’instruction en clair. La page qui héberge le texte chiffré inclut aussi, en clair, les instructions de déchiffrement et la clé. Quand l’utilisateur demande à Grok de résumer la page, le modèle déchiffre, puis exécute — sans avertissement ni confirmation.

Les instructions déchiffrées ordonnent au modèle de construire ce qui ressemble à une clé de déchiffrement. En réalité, la valeur est le nom, la localisation et l’historique de chat de l’utilisateur. Cette valeur devient ensuite un paramètre d’une URL pointant vers le site de l’attaquant. Dès que Grok ouvre le lien, les données atterrissent dans les journaux du serveur adverse.

Pourquoi le garde-fou ne voit rien

La cause racine tient en une phrase : les garde-fous statiques classent le texte, ils ne l’exécutent pas. Un classifieur lit le contenu mais ne peut pas résoudre ce que le chiffrement déverrouille.

Les instructions de traiter le texte chiffré avec PBKDF2 et AES-256-GCM passent le filtre comme une requête ordinaire. Une fois déchiffrées, les instructions atteignent le modèle comme sa propre sortie d’outil, et il y obéit sans que le garde-fou ne les inspecte jamais.

« Tout ce dont le scanner d’un garde-fou aurait besoin est là, sur la page », écrit Utevsky. « Mais retrouver le clair exige d’exécuter PBKDF2 et AES-256-GCM, ce qu’aucun classifieur de contenu ne fait au moment de l’inspection. » Le vrai bug n’est pas le chiffrement — c’est que le modèle ne distingue pas ses sorties d’outils des instructions qu’il doit suivre.

Gemini : la même technique en mode jailbreak

Adversa a appliqué une variante de la technique à Gemini. Ici, le texte chiffré se déchiffre en un traceback, porteur d’une règle unique : si le code échoue, lire le message d’erreur et agir dessus. Le clair injecté a conduit Gemini à violer ses règles de sûreté, en produisant un exemple multi-paragraphes de contenu normalement censuré — la fabrication d’une arme incendiaire — puis, avec une charge modifiée, à reproduire ses propres instructions système, y compris la directive interdisant leur divulgation.

Adversa n’a pas signalé ce comportement à Google, les jailbreaks sortant du périmètre de son programme de divulgation. En quelques semaines, Gemini est néanmoins devenu plus résistant à l’attaque, sans qu’on sache si c’est le filtre, la version du modèle, ou les deux.

Ce que ça change pour la défense

L’épisode Grok n’est pas isolé. Plus tôt dans la semaine, une autre équipe avait exploité une entrée secrète de Microsoft 365 Copilot pour faire exfiltrer un mot de passe présent dans la boîte mail d’un utilisateur. Les deux affaires convergent vers la même leçon : les modèles ne peuvent pas résoudre la cause racine des injections de prompt.

La défense reste une succession de garde-fous ponctuels — une glissière de sécurité posée après coup sur un virage dangereux, plutôt qu’un virage reconfiguré. Adversa formule le virage qui s’annonce : les attaques ne manipulent plus seulement le prompt, mais tout le contexte que le modèle considère comme sien — sorties d’outils, résultats d’exécution, états intermédiaires. « Cette surface d’attaque est bien plus large que ce qu’on étiquette “entrées du modèle”, et la prochaine génération d’attaques y naîtra. »

PBKDF2 et AES-256-GCM : pourquoi ces primitives

Le choix des primitives n’est pas anodin. PBKDF2 dérive une clé depuis une phrase secrète via des milliers d’itérations, ce qui rend l’extraction du clair coûteuse hors du modèle — mais triviale pour le modèle lui-même, qui dispose de la clé en clair dans la page et d’un bac à sable pour l’exécuter. AES-256-GCM fournit le chiffrement authentifié, de sorte que l’instruction déchiffrée est intègre et indiscernable d’un binaire quelconque tant qu’on ne la déchiffre pas.

Le point clé n’est pas la solidité du chiffrement — elle est hors sujet — mais l’asymétrie : le classifieur lit le texte, le modèle exécute le code. Tout ce que le garde-fou devrait voir est présent, mais sous une forme qu’aucun scanner de contenu ne résout à l’inspection.

La semaine des injections : Copilot, puis Grok

L’épisode Grok survient dans une semaine chargée. Quelques jours plus tôt, une autre équipe avait exploité une entrée secrète de Microsoft 365 Copilot pour pousser l’assistant à exfiltrer un mot de passe présent dans la boîte mail d’un utilisateur. Deux cibles, deux éditeurs, deux mécanismes différents — et la même conclusion : le modèle exécute ce qu’on lui glisse dans son contexte, qu’il s’agisse d’une entrée secrète ou d’un texte chiffré qu’on lui demande de déchiffrer.

La faiblesse propre au cas Grok est l’exfiltration par URL : le modèle construit un lien et l’ouvre, déposant les données dans les journaux de l’attaquant. Interdire l’ouverture autonome d’URL issues de contenus non fiables — ou retirer les paramètres des liens générés — aurait cassé cette chaîne précise. La correction profonde, ré-inspecter les sorties d’outils avant exécution, reste ouverte pour tous les éditeurs.

Verdict

Si vous déployez un assistant LLM avec accès à des outils (navigation web, exécution de code, lecture de boîte mail), partez du principe que l’injection de prompt n’est pas résolue. Isolez l’exécution des outils dans un bac à sable, ne laissez jamais le modèle ouvrir une URL construite à partir de données non fiables, et traitez les sorties d’outils comme du contenu non fiable à ré-inspecter.

Si vous exploitez un assistant grand public, la parade côté utilisateur est mince : ne demandez jamais à un assistant de résumer une page dont vous ne maîtrisez pas le contenu si l’historique de conversation contient des données sensibles. La responsabilité de la protection incombe à l’éditeur, pas à l’utilisateur.

Le chiffrement n’est ici qu’un costume neuf pour un vieux problème : tant que le modèle exécutera ses propres sorties sans les ré-inspecter, chaque garde-fou sera contourné par le vecteur suivant. xAI a eu trois mois — le correctif n’est toujours pas là.

Références

Le brief cyber, chaque mardi

Les failles qui comptent, les correctifs à appliquer, en dix minutes de lecture.

Pas de spam. Désinscription en un clic.
à lire ensuite

Sur le même sujet

← Retour au fil

Tapez au moins deux caractères.

naviguer ouvrir esc fermer