← Alle Beiträge

Schwachstelle bei ChatGPT share link ermöglichte Zugriff auf private Chats

Schwachstelle bei ChatGPT share link ermöglichte Zugriff auf private Chats

Eine Schwachstelle bei ChatGPT share link ermöglichte es, von einem Angreifer kontrollierten Code innerhalb der angemeldeten Sitzung einer anderen Person auszuführen und auf private Unterhaltungen zuzugreifen, wie das Sicherheitsunternehmen Parameter demonstrierte. Ein share link ist eine öffentliche Webadresse, über die anderen Personen eine Unterhaltung gezeigt werden kann. Die Schwachstelle wurde behoben, und Parameter fand keine Hinweise darauf, dass sie gegen echte Nutzer ausgenutzt wurde.

Parameter meldete die Schwachstelle am 18. Oktober über das bug bounty program von OpenAI, das Forschende für die verantwortungsvolle Meldung von Sicherheitslücken belohnt. OpenAI reproduzierte die code execution und den Test mit dem privaten Chat, stufte den Schweregrad von P2 auf P1, die höchste Kategorie, herauf und behob das Problem acht Tage nach der Meldung. Parameter veröffentlichte seine Erkenntnisse am 28. Oktober, nachdem die Korrektur umgesetzt worden war, und erhielt insgesamt 5.000 US-Dollar.

Der Angriff begann mit einer ansonsten gewöhnlichen Unterhaltung, die über die Funktion von ChatGPT für öffentliche Links geteilt wurde. Ein schädlicher Link hätte per E-Mail, Chatnachricht, Support-Ticket oder Social-Media-Beitrag übermittelt werden können – genau wie eine legitime geteilte Unterhaltung. Die empfangende Person musste weder Software installieren noch einem vom Angreifer kontrollierten Workspace beitreten oder sich über eine vom Angreifer bereitgestellte Seite anmelden.

Beim zuverlässigsten Test öffnete die empfangende Person den Link und klickte einmal auf die Preview-Schaltfläche von ChatGPT. Preview verwandelt HTML, den Code zur Strukturierung von Webseiten, in eine kleine Webseite innerhalb einer Unterhaltung. Später konfigurierte Parameter Preview so, dass es automatisch geöffnet wurde. Dadurch beschränkte sich die erforderliche Interaktion auf das Öffnen des geteilten Links.

Nach der Auslösung lief der Testcode mit den Zugriffsrechten der authentifizierten ChatGPT-Sitzung des Opfers. Er listete die zuletzt verwendeten Unterhaltungen auf, öffnete einen privaten Chat, der nie mit dem anderen Konto geteilt worden war, und übertrug einen kurzen Ausschnitt an einen von Parameter kontrollierten server. Die Forschenden führten dies als kontrollierten proof of concept mit getrennten Testkonten durch und nicht gegen ahnungslose Nutzer.

Der Code kopierte nicht bloß Informationen, die auf dem Bildschirm sichtbar waren. Er nutzte direkt die API der angemeldeten ChatGPT-Sitzung. Eine API, also eine Programmierschnittstelle, ist ein Weg, über den Software Daten oder Aktionen von einem anderen Dienst anfordert. Da der Code mit den Webzugriffsrechten des Opfers arbeitete, war er laut Parameter nicht auf das Lesen von Chats beschränkt, sondern konnte faktisch Aktionen im Namen des Kontos ausführen.

ChatGPT isoliert Preview-Inhalte normalerweise innerhalb einer sandbox, also eines eingeschränkten Bereichs, der verhindern soll, dass nicht vertrauenswürdiger Webcode auf den umgebenden Dienst zugreift. Preview lief in einem frame, einer in eine andere Seite eingebetteten Webseite, unter einer separaten Webadresse. Parameter stellte fest, dass diese Isolierung wie vorgesehen funktionierte. Der Ausweg aus der Isolation beruhte stattdessen auf einem interaktiven Diagramm, das sich in derselben geteilten Unterhaltung befand.

Beim Rendern dieses Diagramms wurde MathLive, eine Softwarebibliothek für Mathematik, in die Hauptseite von ChatGPT geladen. MathLive ließ dort einen listener aktiv, der Nachrichten zu seiner Bildschirmtastatur empfangen sollte. frame im Browser können Nachrichten sicher austauschen, wenn der empfangende Code überprüft, woher jede Nachricht stammt. Laut Parameter akzeptierte dieser listener eine tastaturbezogene Nachricht von jedem Absender und erlaubte, dass sie raw HTML als Daten für das Tastaturlayout enthielt.

Das isolierte Preview konnte daher vom Angreifer bereitgestelltes HTML über die Grenze hinweg an die vertrauenswürdige ChatGPT-Seite senden. Dieses HTML erstellte ein weiteres frame, das der Browser als zu chatgpt.com gehörend behandelte und nicht als isolierten Inhalt. Ein von YouTube geladenes script stellte anschließend den ausführbaren Code bereit, der innerhalb dieses vertrauenswürdigen frame lief.

Dieser letzte Schritt funktionierte, weil die content security policy von ChatGPT – eine Browserregel, die einschränkt, aus welchen Quellen eine Seite ausführbare scripts laden darf – direkt in die Seite geschriebenen Code blockierte, scripts von YouTube jedoch zuließ. Parameter betonte, dass der Weg über YouTube lediglich die letzte Umgehungsmöglichkeit und nicht die eigentliche Ursache war. Allein das Blockieren dieser Quelle hätte einem nicht vertrauenswürdigen Preview weiterhin ermöglicht, HTML in die Hauptseite einzuschleusen.

Die Forschenden identifizierten drei Designentscheidungen hinter dieser Angriffskette. MathLive reagierte auf eine Nachricht zur Änderung von Einstellungen, ohne zu überprüfen, von welchem frame sie gesendet worden war. Die Nachricht konnte raw HTML als Informationen zum Tastaturlayout enthalten. Dieses HTML konnte anschließend ein frame ohne sandbox erstellen, das die Identität von chatgpt.com übernahm.

OpenAI spielte die Korrektur für zwei Versionen des web frontend von ChatGPT aus, also des Teils des Dienstes, der im Browser eines Nutzers ausgeführt wird. Bis zum 26. Oktober wiesen beide Versionen die für den Angriff erforderlichen Nachrichten zurück. Da die Änderung aufseiten des Dienstes vorgenommen wurde, müssen ChatGPT-Nutzer für diese Schwachstelle weder ein Update installieren noch etwas zurücksetzen oder einen anderen Schritt zur Behebung unternehmen.

Für Organisationen, die Risiken rund um Webanwendungen und angemeldete Geschäftskonten bewerten, bietet AEU-I IT, Infrastruktur und Beratung mit konsequentem Sicherheitsfokus. Die übergreifende Lehre aus dem Test von Parameter lautet, dass eine isolierte Komponente sicher bleiben kann, während eine andere vertrauenswürdige Komponente einen unerwarteten Weg um diese Isolation herum öffnet. Deshalb sind strenge Prüfungen der Herkunft und des Inhalts von Browsernachrichten unverzichtbar.

Auch verfügbar in: EnglishItalianoShqip