Une équipe de recherche en sécurité a trouvé un moyen de prendre le contrôle de n'importe quel compte ChatGPT simplement en obligeant la victime à ouvrir un lien de conversation partagé, selon une divulgation technique publiée par Parameter Labs le 28 octobre. La société a signalé qu'OpenAI avait corrigé la vulnérabilité le 26 octobre et classé le rapport comme P1, son indice de gravité le plus élevé.
Il s'agit d'une rare prise de contrôle de bout en bout d'un compte par rapport à une plate-forme d'IA grand public, et elle a été réalisée alors que les derniers développements de l'IA continuent de montrer la quantité de matériel sensible que les gens conservent désormais dans les applications de chat. Parameter Labs a déclaré que l'attaque ne nécessitait aucune installation d'application, aucun outil de développement et aucune interaction au-delà de l'ouverture de l'URL ChatGPT partagée de l'attaquant.
Comment fonctionnait la chaîne d'attaque
La chaîne a abusé de deux fonctionnalités ChatGPT ordinaires qui semblaient inoffensives isolément : un graphique interactif et le bac à sable HTML Preview. La fonctionnalité Aperçu de ChatGPT exécute le HTML généré dans un cadre restreint sur une adresse Web distincte, ce qui devrait l'empêcher de toucher la page chatgpt.com connectée autour d'elle.
La percée est venue du graphique, qui chargeait une bibliothèque mathématique appelée MathLive. Cette bibliothèque a installé un écouteur de messages dans la page principale ChatGPT pour son clavier à l'écran, mais Parameter Labs a constaté que l'écouteur acceptait les messages de n'importe quelle origine sans vérifier l'expéditeur. Un type de message accepté pourrait remplacer la disposition du clavier virtuel par du HTML contrôlé par l'attaquant, que MathLive aurait ensuite inséré dans la véritable page ChatGPT via innerHTML.
Les scripts insérés de cette manière ne s'exécutent normalement pas, c'est pourquoi les chercheurs ont enveloppé leur charge utile dans une iframe à l'aide de l'attribut srcdoc. Étant donné que la page principale de ChatGPT a créé ce cadre sans bac à sable, le navigateur a traité le code qu'il contient comme un véritable contenu chatgpt.com avec accès à la page parent.
Échapper à la politique de sécurité du contenu
La politique de sécurité du contenu de ChatGPT bloquait toujours les scripts en ligne, mais Parameter Labs a trouvé une lacune : la politique autorisait les scripts de YouTube. Les chercheurs ont découvert que le point de terminaison oEmbed de YouTube reflétait un paramètre de rappel JSONP non valide dans sa réponse d'erreur avant la validation, leur permettant ainsi d'ajouter un code JavaScript exécutable à une réponse que le navigateur chargerait volontiers sous forme de script.
À ce stade, l'équipe avait exécuté du JavaScript arbitraire avec l'identité de chatgpt.com dans la session de connexion de la victime. Parameter Labs a été explicite sur ce que cela signifiait dans la pratique : la charge utile ne se limitait pas à modifier la page ou à afficher une alerte : elle pouvait directement appeler les API authentifiées de ChatGPT en tant que victime. Lors des tests, la charge utile pourrait énumérer la liste des conversations de la victime, récupérer le contenu des conversations privées qui n'ont jamais été partagées avec l'attaquant et envoyer ces données à un serveur externe. Le navigateur a identifié chaque action comme provenant de chatgpt.com lui-même, ne donnant à la victime aucun signal visible indiquant que quelque chose n'allait pas.
Un lien suffisait
Ce qui a transformé un bug de recherche en une arme pratique, c'est la livraison. Les chercheurs ont placé le graphique et un bloc HTML prévisualisable dans une seule conversation ordinaire, l'ont publié avec la fonction de partage normale de ChatGPT et ont envoyé le lien /share/ résultant par les mêmes voies que n'importe qui utiliserait : e-mail, chat, ticket d'assistance ou publication sociale.
Dans la reproduction la plus stable, la victime devait cliquer une fois sur le bouton Aperçu de ChatGPT après avoir ouvert le lien. Une version ultérieure marquait le bloc HTML comme étant prévisualisable, donc ChatGPT l'ouvrait automatiquement et la seule action requise de la victime était de visiter l'URL. L’équipe a reproduit ce chemin entièrement automatique trois fois dans un compte séparé, y compris après une actualisation matérielle, la charge utile se déclenchant environ 4,5 secondes après le chargement de la page.
Étant donné que le graphique et l'aperçu étaient chargés indépendamment, la charge utile pouvait occasionnellement se déclencher avant que MathLive ne soit prêt. La version finale a réessayé ses messages pendant une période limitée pour gérer cette condition de concurrence.
Divulgation et correction
Parameter Labs a signalé le problème à OpenAI, qui a publié un correctif le 26 octobre et a noté le rapport P1. Cette divulgation intervient dans le cadre d’une série plus large de recherches sur la sécurité des plateformes d’IA ; plus tôt cette semaine, The Register a signalé des bogues dans cinq outils de développement d'IA, dont certains n'étaient toujours pas corrigés au moment de la publication.
La leçon se généralise au-delà d’une seule bibliothèque. Les applications de chat modernes composent des composants tiers, des aperçus en bac à sable et des canaux de messages permissifs sur une seule page authentifiée, et tout récepteur postMessage non vérifié peut devenir le pont entre eux. Pour les utilisateurs, les conseils pratiques sont inchangés par rapport à la sécurité Web classique : traitez les liens vers des conversations partagées par l’IA de la même manière que vous traitez n’importe quel autre lien non sollicité, car la plateforme ne peut plus promettre que l’ouverture d’un lien est inoffensive.
Pour sa part, la classification P1 d'OpenAI et son délai d'exécution rapide suggèrent que l'entreprise traite les attaques de session basées sur un navigateur sur chatgpt.com comme des menaces de premier niveau. L’incident rappelle également à quel point la valeur se concentre dans ces comptes maintenant que les utilisateurs stockent des documents de travail, des questions médicales et des projets privés dans l’historique des discussions – exactement le contenu que Parameter Labs a prouvé qu’un attaquant aurait pu extraire.
---
Gardez une longueur d'avance sur l'IARecevez les dernières actualités, analyses et avancées en matière d'IA, le tout en un seul endroit.
Lire plus d'actualités sur l'IA →