Een beveiligingsonderzoeksteam heeft een manier gevonden om een ​​ChatGPT-account over te nemen door het slachtoffer simpelweg een gedeelde gesprekslink te laten openen, volgens een technische onthulling die op 28 oktober door Parameter Labs is gepubliceerd. Het bedrijf meldde dat OpenAI de kwetsbaarheid op 26 oktober had verholpen en classificeerde het rapport als P1, de hoogste ernstclassificatie.

De bevinding is een zeldzame end-to-end accountovername tegen een mainstream AI-platform, en kwam terecht toen de [laatste AI-ontwikkelingen] (https://aibuzzwire.news) steeds weer lieten zien hoeveel gevoelig materiaal mensen nu in chatapplicaties bewaren. Parameter Labs zei dat voor de aanval geen app-installatie, geen ontwikkelaarstools en geen interactie nodig waren behalve het openen van de gedeelde ChatGPT-URL van de aanvaller.

Hoe de aanvalsketen werkte

De keten misbruikte twee gewone ChatGPT-functies die op zichzelf onschuldig leken: een interactieve grafiek en de HTML Preview-sandbox. De Preview-functie van ChatGPT voert gegenereerde HTML uit in een beperkt frame op een afzonderlijk webadres, wat zou moeten voorkomen dat de ingelogde chatgpt.com-pagina eromheen wordt aangeraakt.

De doorbraak kwam van de grafiek, die een wiskundebibliotheek laadde met de naam MathLive. Die bibliotheek installeerde een berichtenluisteraar op de hoofdpagina van ChatGPT voor het schermtoetsenbord, maar Parameter Labs ontdekte dat de luisteraar berichten van welke oorsprong dan ook accepteerde zonder de afzender te verifiëren. Eén geaccepteerd berichttype zou de virtuele toetsenbordindeling kunnen vervangen door door de aanvaller bestuurde HTML, die MathLive vervolgens via innerHTML in de echte ChatGPT-pagina invoegde.

Scripts die op die manier worden ingevoegd, worden normaal gesproken niet uitgevoerd, dus verpakten de onderzoekers hun payload in een iframe met behulp van het srcdoc-attribuut. Omdat de hoofdpagina van ChatGPT dat frame zonder sandbox creëerde, behandelde de browser de code daarin als echte chatgpt.com-inhoud met toegang tot de bovenliggende pagina.

Ontsnappen aan het inhoudbeveiligingsbeleid

Het Content Security Policy van ChatGPT blokkeerde nog steeds inline scripts, maar Parameter Labs ontdekte een leemte: het beleid stond scripts van YouTube toe. De onderzoekers ontdekten dat het oEmbed-eindpunt van YouTube een ongeldige JSONP-callback-parameter weerspiegelde in de foutreactie vóór validatie, waardoor ze uitvoerbaar JavaScript konden voorafgaan aan een antwoord dat de browser graag als een script zou laden.

Op dat moment had het team willekeurig JavaScript draaien met de identiteit van chatgpt.com in de ingelogde sessie van het slachtoffer. Parameter Labs was expliciet over wat dat in de praktijk betekende: de payload bleef niet beperkt tot het aanpassen van de pagina of het weergeven van een waarschuwing; het kon rechtstreeks de geverifieerde API's van ChatGPT als slachtoffer aanroepen. Tijdens het testen kon de payload de gesprekkenlijst van het slachtoffer opsommen, de inhoud van privégesprekken ophalen die nooit met de aanvaller zijn gedeeld, en die gegevens naar een externe server sturen. De browser identificeerde elke actie als afkomstig van chatgpt.com zelf, waardoor een slachtoffer geen zichtbaar signaal kreeg dat er iets mis was.

Eén link was genoeg

Wat van een onderzoeksbug een praktisch wapen maakte, was de bezorging. De onderzoekers plaatsten de grafiek en een voorbeeld van een HTML-blok in één gewoon gesprek, publiceerden het met de normale deelfunctie van ChatGPT en stuurden de resulterende /share/-link via dezelfde routes die iedereen zou gebruiken: e-mail, chat, een supportticket of een sociale post.

In de meest stabiele weergave moest het slachtoffer één keer op de Preview-knop van ChatGPT klikken nadat hij de link had geopend. Een latere versie markeerde het HTML-blok als previewable, dus ChatGPT opende het automatisch en de enige vereiste actie van het slachtoffer was het bezoeken van de URL. Het team reproduceerde dat volledig automatische pad drie keer in een afzonderlijk account, ook na een harde vernieuwing, waarbij de payload ongeveer 4,5 seconden nadat de pagina was geladen, werd geactiveerd.

Omdat de grafiek en het voorbeeld onafhankelijk van elkaar werden geladen, kon de payload af en toe worden geactiveerd voordat MathLive gereed was. De definitieve versie probeerde zijn berichten gedurende een beperkte periode opnieuw om aan die raceconditie te voldoen.

Openbaarmaking en oplossing

Parameter Labs rapporteerde het probleem aan OpenAI, dat op 26 oktober een oplossing opleverde en het rapport als P1 beoordeelde. De onthulling komt te midden van een bredere reeks beveiligingsonderzoeken naar AI-platforms; eerder deze week rapporteerde The Register bugs in vijf AI-ontwikkelaarstools, waarvan sommige bij publicatie nog niet waren gepatcht.

De les generaliseert verder dan één bibliotheek. Moderne chatapplicaties stellen componenten van derden, previews in een sandbox en tolerante berichtkanalen samen op één enkele geverifieerde pagina, en elke niet-geverifieerde postMessage-ontvanger kan de brug daartussen vormen. Voor gebruikers zijn de praktische richtlijnen onveranderd ten opzichte van de klassieke webbeveiliging: behandel links naar gedeelde AI-gesprekken op dezelfde manier als elke andere ongevraagde link, omdat het platform niet langer kan beloven dat het openen ervan onschadelijk is.

De P1-classificatie en snelle doorlooptijd van OpenAI suggereren dat het bedrijf browsergebaseerde sessieaanvallen op chatgpt.com als eerstelijnsbedreigingen beschouwt. Het incident herinnert ons er ook aan hoeveel waarde er in deze accounts zit nu gebruikers werkdocumenten, medische vragen en privéprojecten in de chatgeschiedenis opslaan – precies de inhoud waarvan Parameter Labs heeft bewezen dat een aanvaller deze had kunnen achterhalen.

---

Blijf AI een stap voor

Ontvang het laatste AI-nieuws, analyses en doorbraken – allemaal op één plek.

Lees meer AI-nieuws →