ChatGPT: Geteilter Chat las fremde Konten aus
Ein präparierter ChatGPT-Share-Link konnte im Konto des Opfers JavaScript ausführen und private Chats abziehen. OpenAI hat das am 26.10.2026 behoben.
Wer im Oktober einen fremden ChatGPT-Share-Link geöffnet hat, konnte damit sein eigenes Konto preisgeben. Mukul Goyal von Parameter Labs hat am 28.10.2026 eine Kette aus drei Fehlern beschrieben, über die ein präparierter geteilter Chat JavaScript im Namen von chatgpt.com ausführen konnte, und zwar in der angemeldeten Sitzung des Opfers. OpenAI hat die Lücke am 26.10. geschlossen. Nutzer müssen nichts tun.
Wie der Angriff lief
Der Einstieg war harmlos: Ein Chat mit einem interaktiven Diagramm lädt die Mathe-Bibliothek MathLive in die ChatGPT-Seite. MathLive horcht auf Nachrichten aus anderen Fenstern, prüfte aber nicht, von wem sie kamen. Eine HTML-Vorschau im selben Chat, die das Modell selbst erzeugt hatte, schickte zwei solche Nachrichten: eine mit eigenem HTML als Layout für MathLives Bildschirmtastatur, eine zweite, die diese Tastatur einblendet.
Dieses HTML landete ungefiltert in der echten ChatGPT-Seite. Darin steckte ein iframe mit srcdoc und ohne sandbox-Attribut, das damit die Identität von chatgpt.com erbte. Die Content Security Policy blockte eingebettete Skripte, ließ aber YouTube zu. Über einen JSONP-Endpunkt von YouTube kam schließlich doch eigener Code zur Ausführung.
Das Skript las das Sitzungstoken aus, holte die Liste der letzten Chats, lud den Inhalt eines privaten Chats und schickte einen Ausschnitt an einen fremden Server. Goyal schreibt, der Code habe alle Schnittstellen aufrufen können, die das Frontend selbst nutzt, und damit das Konto im Grunde übernommen.
Das Opfer musste angemeldet sein und den Link öffnen. In der stabilsten Fassung war noch ein Klick auf "Preview" nötig, in einer späteren startete die Vorschau beim Öffnen von selbst. Installieren, Code einfügen oder Entwicklerwerkzeuge öffnen musste niemand.
Ablauf der Meldung
| Datum | Was passierte |
|---|---|
| 13.10.2026 | Parameter Labs findet den Weg von MathLive-Nachricht zu HTML im Produktivcode |
| 18.10.2026 | Meldung über OpenAIs Bug-Bounty-Programm |
| 21.10.2026 | OpenAI reproduziert und stuft von P2 auf P1 hoch |
| 22./23.10.2026 | Erstes Frontend gefixt, CSP-Änderung blockt einen Teil der Kette |
| 26.10.2026 | Beide Frontends gefixt, Meldung geschlossen, 5.000 Dollar Prämie |
| 28.10.2026 | Veröffentlichung des Berichts |
Ob jemand die Lücke vorher ausgenutzt hat, steht im Bericht nicht. Simon Willison hält die Prämie für "a bit cheap for a vulnerability this serious".
Was daraus folgt
Für ChatGPT-Nutzer ist die Sache erledigt. Interessant ist der Fall für alle, die selbst KI-Ausgaben als HTML oder Vorschau rendern, etwa in eigenen Chat-Oberflächen, Artifact-Viewern oder internen Werkzeugen. Die Kette funktionierte, weil drei für sich kleine Schwächen zusammenkamen: ein Nachrichten-Listener ohne Absenderprüfung, ein Frame ohne Sandbox und eine CSP mit einer zu großzügigen Ausnahme. Modellgenerierter Inhalt war dabei der Transportweg.
Wer so etwas baut, sollte drei Dinge prüfen. Jeder message-Handler kontrolliert event.origin und event.source. Vorschauen laufen in einem iframe mit sandbox auf einer eigenen Origin, nie mit srcdoc im Kontext der Hauptseite. Und die CSP erlaubt keine Domains, die JSONP oder ähnliche Rückrufmechanismen anbieten. Das gilt auch für Bibliotheken von Drittanbietern, die ihre eigenen Listener mitbringen: Bei ChatGPT stammte der ungeprüfte Listener aus MathLive.