🔍 Contexte
Publié le 28 octobre 2026 par Mukul Goyal (Parameter Labs), cet article de recherche détaille une vulnérabilité critique (P1) découverte en octobre 2026 dans ChatGPT (chatgpt.com), permettant la prise de contrôle de comptes via une chaîne d’exploitation multi-composants. OpenAI a corrigé le problème le 26 octobre 2026.
⚙️ Mécanisme d’exploitation
La chaîne repose sur la combinaison de plusieurs fonctionnalités légitimes de ChatGPT :
- Graphique interactif : charge la bibliothèque MathLive, qui installe un listener
postMessagedans la page principalechatgpt.com. - HTML Preview (iframe sandboxé sur un domaine différent) : envoie deux messages
postMessagede typemathlive#virtual-keyboard-messageau listener MathLive. - Absence de vérification d’origine : MathLive accepte ces messages sans valider
event.originnievent.source(politiquenone). - Injection HTML : le message
update-settinginjecte du HTML arbitraire viainnerHTMLdans la page principale, viacreateHTMLqui agit comme un wrapper Trusted Types sans sanitisation. - Contournement du sandbox : un
<iframe srcdoc>sans attributsandboxest créé dans la page principale, héritant de l’identitéhttps://chatgpt.com. - Contournement de la CSP : la CSP de ChatGPT autorisait les scripts depuis
www.youtube.com. L’endpoint YouTube oEmbed JSONP (/oembed?callback=) permettait d’injecter du JavaScript arbitraire via le paramètrecallback, retourné avecContent-Type: text/javascript.
💥 Impact confirmé
- Exécution de JavaScript arbitraire dans la session authentifiée de la victime sur
chatgpt.com - Énumération des conversations privées via
GET /backend-api/conversations - Lecture du contenu de conversations privées via
GET /backend-api/conversations/<id> - Exfiltration de données vers un serveur contrôlé par l’attaquant via une requête image
- Accès complet aux APIs authentifiées de ChatGPT au nom de la victime
- La victime n’avait qu’à ouvrir le lien partagé (aucune installation, aucun clic supplémentaire requis dans la version automatique)
📅 Timeline
- 13 oct. 2026 : Confirmation du chemin MathLive → HTML en production
- 14 oct. : Reproduction complète, exécution JavaScript arbitraire
- 16 oct. : Confirmation de la livraison via lien de partage public entre comptes séparés
- 17 oct. : Confirmation du Preview automatique à l’ouverture du lien
- 18 oct. : Soumission au bug bounty OpenAI
- 19 oct. : Ajout de la preuve d’exfiltration de conversation privée
- 21 oct. : OpenAI reproduit le bug, sévérité élevée de P2 à P1
- 26 oct. : Correction déployée sur les deux frontends web, bounty de 5 000 USD accordé
📄 Nature de l’article
Il s’agit d’une publication de recherche technique (post-mortem / write-up de bug bounty) dont le but est de documenter en détail la chaîne d’exploitation, les décisions de conception fautives et la remédiation appliquée par OpenAI.
🧠 TTPs et IOCs détectés
TTP
- T1059.007 — Command and Scripting Interpreter: JavaScript (Execution)
- T1185 — Browser Session Hijacking (Collection)
- T1539 — Steal Web Session Cookie (Credential Access)
- T1567 — Exfiltration Over Web Service (Exfiltration)
- T1189 — Drive-by Compromise (Initial Access)
- T1530 — Data from Cloud Storage (Collection)
IOC
- URLs :
https://www.youtube.com/oembed?callback=globalThis.__marker=31337;void— URLhaus
⚠️ À propos de ces IOC — ils sont extraits automatiquement de l’article original le 5 novembre 2026 et n’ont pas fait l’objet d’une vérification externe. Un indicateur peut avoir été réattribué depuis : une IP de C2 peut redevenir un service légitime, un domaine sinkholé peut changer de propriétaire. Aucune garantie d’exactitude ni d’actualité — contrôlez leur validité avant tout usage opérationnel, en particulier avant de les injecter dans une blocklist ou un SIEM.
🟡 Indice de vérification factuelle : 46/100 (moyenne)
- ⬜ parameter.ai — source non référencée (0pts)
- ✅ 18798 chars — texte complet (fulltext extrait) (15pts)
- ✅ 1 IOC(s) (6pts)
- ⬜ 0/1 IOCs confirmés externellement (0pts)
- ✅ 6 TTPs MITRE identifiées (15pts)
- ✅ date extraite du HTML source (10pts)
- ⬜ aucun acteur de menace nommé (0pts)
- ⬜ pas de CVE à vérifier (0pts)
🔗 Source originale : https://www.parameter.ai/labs/we-found-a-gap-at-openai