Comment un lien ChatGPT partagé peut détourner des comptes utilisateurs via une évasion du bac à sable
Des chercheurs ont découvert une chaîne de vulnérabilités dans l'aperçu HTML et l'intégration MathLive de ChatGPT, permettant aux attaquants d'exécuter du code dans les sessions des victimes via des liens de partage publics.
Traduit automatiquement depuis l'original anglais.
En octobre 2026, des chercheurs en sécurité ont découvert une vulnérabilité critique dans ChatGPT qui permettait la prise de contrôle de compte via un simple lien partagé. En exploitant une faille dans la gestion des graphiques interactifs et des aperçus HTML par la plateforme, les attaquants pouvaient injecter du JavaScript malveillant dans la session authentifiée d'une victime. OpenAI a classifié le problème comme étant de sévérité P1 et a déployé un correctif le 26 octobre 2026.
Ce qui s'est passé
La vulnérabilité permettait à un attaquant de créer une conversation malveillante et de la publier en utilisant la fonctionnalité de partage standard de ChatGPT. Lorsqu'une victime ouvrait ce lien public, la charge utile s'exécutait dans sa session connectée sur chatgpt.com. Ce contexte d'exécution accordait à l'attaquant un accès complet au compte de la victime, lui permettant d'énumérer les conversations privées, de récupérer le contenu des messages non partagés et d'exfiltrer des données vers des serveurs externes.
Crucialement, l'attaque ne nécessitait aucune action de la part de la victime autre que le clic sur le lien. Elle n'avait pas besoin d'installer des applications, de rejoindre des projets spécifiques ou d'ouvrir des outils de développement. Dans certaines variantes de l'exploit, le code malveillant s'exécutait automatiquement au chargement de la page, tandis que d'autres nécessitaient un seul clic sur le bouton « Preview ». Les chercheurs ont confirmé que le code injecté pouvait appeler directement les API authentifiées de ChatGPT, effectuant ainsi toute action que la victime était capable de réaliser.
La chaîne d'exploitation reposait sur deux fonctionnalités apparemment inoffensives : un graphique interactif et la fonction Aperçu HTML. Le graphique chargeait une bibliothèque mathématique appelée MathLive, qui installait un écouteur de messages dans la page principale. L'Aperçu HTML, fonctionnant dans un bac à sable restreint, envoyait des messages élaborés à cet écouteur. Parce que l'écouteur manquait de vérifications appropriées de l'origine, il acceptait les instructions provenant du cadre d'aperçu non fiable, entraînant une rupture de la frontière du bac à sable.
Comment cela fonctionne
Le cœur de l'exploit impliquait le contournement de la politique de même origine du navigateur en utilisant l'API postMessage. Bien que l'Aperçu HTML soit exécuté sur un domaine séparé pour l'isoler de l'interface principale de ChatGPT, il pouvait toujours envoyer des messages à la fenêtre parente. MathLive, utilisé pour le rendu des expressions mathématiques, écoutait ces messages pour mettre à jour la disposition de son clavier virtuel. Cependant, il ne vérifiait pas la source des messages, permettant au cadre d'aperçu d'envoyer des commandes arbitraires.
L'attaquant envoyait un message instruisant MathLive de mettre à jour sa disposition de clavier avec du HTML personnalisé. MathLive insérait ce HTML dans la page principale en utilisant innerHTML. Bien que les balises script insérées de cette manière ne s'exécutent pas immédiatement, l'attaquant incluait un iframe avec un attribut srcdoc. Cela créait un nouveau document dans la page principale qui héritait de l'origine chatgpt.com. Puisque ce nouveau cadre n'était pas placé dans un bac à sable, il pouvait accéder au DOM et aux cookies de la page parente.
Pour exécuter du JavaScript malgré la Politique de Sécurité du Contenu (CSP) de ChatGPT, l'attaquant exploitait le point de terminaison oEmbed de YouTube. La CSP autorisait les scripts provenant de YouTube, et le point de terminaison oEmbed prenait en charge les rappels JSONP. En élaborant un paramètre de rappel spécifique, l'attaquant trompait YouTube pour qu'il renvoie une réponse JavaScript qui exécutait son code. Cette étape finale leur donnait une exécution de code arbitraire dans la session authentifiée de la victime.
Détails clés
- Type de vulnérabilité : Cross-site scripting (XSS) via une évasion du bac à sable et une gestion non sécurisée de
postMessage. - Composant affecté : Frontend web de ChatGPT, spécifiquement l'interaction entre l'Aperçu HTML, MathLive et la page principale.
- Vecteur d'attaque : Un lien de conversation ChatGPT partagé publiquement contenant un graphique malveillant et un aperçu HTML.
- Impact : Prise de contrôle complète du compte, y compris la lecture des conversations privées et l'exécution d'appels API en tant que victime.
- Action requise de l'utilisateur : Aucune dans certains cas ; sinon, un seul clic sur le bouton « Preview ».
- Résolution : OpenAI a corrigé le problème le 26 octobre 2026 en rejetant les messages MathLive inter-cadres et en mettant à jour les règles CSP.
Pourquoi c'est important
Cet incident met en évidence les risques liés aux interactions complexes de fonctionnalités dans les applications web modernes. Des composants individuels tels que les bacs à sable, les CSP et les écouteurs de messages peuvent être sûrs lorsqu'ils sont isolés, mais leur combinaison peut créer des vulnérabilités inattendues. Pour les développeurs construisant des interfaces IA, cela souligne l'importance de vérifications rigoureuses de l'origine pour les écouteurs postMessage et d'éviter l'insertion de HTML brut provenant de sources non fiables.
Pour les utilisateurs, cela sert de rappel que les liens partagés provenant de plateformes IA peuvent porter des menaces actives. Contrairement aux attaques de phishing traditionnelles qui reposent sur la tromperie, cet exploit utilisait des fonctionnalités légitimes de la plateforme pour livrer des logiciels malveillants. Les organisations devraient envisager de restreindre l'accès aux partages publics ou de mettre en œuvre des étapes de vérification supplémentaires pour le contenu externe jusqu'à ce que de telles vulnérabilités soient entièrement atténuées.
Ce que vous pouvez faire
- Vérifiez l'expéditeur avant d'ouvrir des liens ChatGPT partagés, surtout ceux provenant de sources inconnues.
- Surveillez l'activité de votre compte pour détecter des appels API inhabituels ou des journaux d'accès aux conversations.
- Si vous êtes développeur, assurez-vous que tous les écouteurs
postMessagevalidentevent.originetevent.source. - Évitez d'utiliser
innerHTMLpour insérer du contenu provenant de cadres non fiables ; utilisez plutôt le contenu texte ou du HTML assaini. - Mettez en œuvre des politiques CSP strictes qui interdisent les scripts en ligne et limitent les domaines fiables aux services essentiels uniquement.
- Maintenez votre navigateur et vos extensions de sécurité à jour pour bénéficier des dernières mesures de protection.



