ChatGPhish : le Markdown non fiable transforme les résumés ChatGPT en hameçonnage
Permiso a divulgué ChatGPhish le 29 mai 2026 : une page que vous demandez à ChatGPT de résumer peut afficher liens piégés, fausses alertes, QR codes et pixels traceurs dans l'interface de confiance.
De quoi s’agit-il ?
ChatGPhish est une technique d’injection de prompt indirecte divulguée par Permiso Security le 29 mai 2026, dans un rapport du threat hunter Andi Ahmeti intitulé ChatGPhish: The Page Is the Payload. La découverte a d’abord été soumise à OpenAI via Bugcrowd le 29 avril 2026 sous le titre Untrusted Markdown Rendering Leads to XSS, Phishing, and Data Exfiltration, puis rendue publique après un mois sans correctif éditeur.
Le problème central est une rupture de frontière de confiance dans la façon dont ChatGPT affiche ses propres réponses. Lorsqu’un utilisateur demande à l’assistant de résumer une page web tierce, le moteur de rendu de chatgpt.com fait confiance aux liens et aux URL d’images Markdown qui proviennent de cette page non fiable. Il récupère automatiquement les images et présente les liens comme des éléments cliquables actifs au sein de l’interface de confiance. Le résumé que lit l’utilisateur n’est plus un texte purement généré par le modèle : il peut véhiculer du contenu placé par l’attaquant.
Comment ça marche
L’attaquant n’a besoin ni d’un accès au compte de la victime ni d’une faille du navigateur. Il lui faut seulement une page web qu’il contrôle et une victime qui demande à ChatGPT de la résumer. Une petite charge ajoutée à une page par ailleurs ordinaire traverse le résumé jusque dans la réponse affichée.
À partir de là, Permiso démontre quatre primitives, toutes fondées sur la confiance automatique du moteur de rendu envers le Markdown issu de la page résumée :
- Pixels traceurs. Une image hébergée par l’attaquant et intégrée à la page est récupérée automatiquement au rendu de la réponse, fuitant l’adresse IP, le User-Agent et le Referer de la victime vers le serveur de l’attaquant — une balise silencieuse à chaque affichage.
- Liens d’hameçonnage actifs. Des liens Markdown contrôlés par l’attaquant sont présentés comme des éléments cliquables impossibles à distinguer d’une sortie du modèle, héritant de la crédibilité de l’interface.
- Fausses alertes système. Le contenu injecté peut imiter le style propre de ChatGPT pour afficher de faux avertissements de compte ou de sécurité, orientant l’utilisateur vers une page de collecte d’identifiants.
- Pivot par QR code. Un QR code servi depuis un bucket de l’attaquant est affiché en ligne ; le scanner fait passer la victime sur un appareil mobile, contournant le filtrage d’URL du poste de travail et les contrôles d’entreprise.
Il s’agit d’injection de prompt OWASP LLM01, mais le point notable n’est pas l’injection elle-même : c’est que les instructions intégrées à une page sont suivies et présentées à l’utilisateur au sein du résumé. Permiso y voit un basculement de l’e-mail vers le navigateur : l’utilisateur n’a plus à ouvrir une pièce jointe suspecte, seulement à résumer une page pendant une navigation normale. Cela fait écho aux travaux antérieurs de Permiso (mars 2026) sur une injection croisée (XPIA) comparable via les résumés d’e-mails de Microsoft Copilot.
Pourquoi c’est important
Le résumé est l’une des fonctions d’assistant les plus courantes et les plus dignes de confiance, et les organisations y font de plus en plus transiter recherche et tri. ChatGPhish transforme cette habitude en surface d’attaque : toute page qu’un employé demande à traiter peut porter une charge, et la sortie atterrit dans une interface que les utilisateurs ont appris à croire. La primitive d’exfiltration est passive et ne nécessite aucun clic, tandis que l’hameçonnage et le QR code exploitent l’autorité perçue de l’assistant pour baisser la garde de la victime. Le même schéma se généralise à tout produit LLM qui affiche du Markdown enrichi à partir de contenu non fiable résumé.
Ce n’est pas une faille d’exécution de code à distance et elle exige que l’utilisateur lance lui-même le résumé d’un contenu influencé par l’attaquant, ce qui en limite la portée. Voyez-y un vecteur d’hameçonnage et de traçage à haute fréquence et faible friction, plutôt qu’une vulnérabilité de compromission système.
Défenses
Pour les équipes qui conçoivent ou déploient du résumé par LLM :
- Ne récupérez pas automatiquement les images distantes issues d’une sortie de modèle dérivée de contenu non fiable. Différez ou proxifiez les chargements d’images pour qu’un rendu ne devienne pas une balise de traçage, et retirez les métadonnées de requête.
- Neutralisez les liens issus du contenu résumé. Affichez les URL dérivées de l’attaquant en texte inerte, montrez la destination complète, ou conditionnez-les à un avertissement explicite indiquant que le lien vient de la page, pas de l’assistant.
- Séparez l’habillage du modèle du contenu. Ne laissez jamais le texte résumé reproduire le style d’alerte ou système du produit ; réservez les éléments d’interface de confiance aux messages de première partie.
- Appliquez la discipline du triptyque létal. Une entrée non fiable plus un canal de rendu qui atteint l’utilisateur suffisent au préjudice ici ; empêchez le contenu résumé de piloter une interface privilégiée ou des requêtes sortantes.
- Pour les utilisateurs : traitez un résumé IA d’une page inconnue comme la page elle-même — ne cliquez pas sur les liens, ne scannez pas les QR codes et n’agissez pas sur des alertes de sécurité apparaissant dans un résumé.
Statut
| Élément | Détail |
|---|---|
| Divulgué par | Permiso Security (Andi Ahmeti) |
| Signalé à OpenAI | 29 avril 2026 (Bugcrowd) |
| Divulgation publique | 29 mai 2026 |
| Classe | Injection de prompt indirecte / croisée (OWASP LLM01) |
| Impact | Exfiltration de données, hameçonnage, fausses alertes, pivot QR |
| Correctif éditeur à la divulgation | Aucun signalé |
ChatGPhish est une technique documentée et divulguée de façon responsable, pas une bibliothèque de charges. La leçon survit au produit précis : lorsqu’un assistant affiche du contenu enrichi dérivé de pages non fiables, la couche de rendu fait partie de la surface d’attaque et doit être traitée comme une sortie hostile.
Sources
- → https://permiso.io/blog/chatgpt-markdown-rendering-vulnerability
- → https://thehackernews.com/2026/05/chatgphish-vulnerability-turns-chatgpt.html
- → https://www.theregister.com/research/2026/05/29/chatgpt-prompt-injection-turns-web-pages-into-phishing-lures/5248137
- → https://adversa.ai/blog/top-genai-security-resources-june-2026/