Um 1 Uhr pazifischer Zeit am 20. März 2023 führte OpenAI eine Änderung an den ChatGPT-Servern ein, die einen sprunghaften Anstieg der Redis-Anfrageabbrüche verursachte. OpenAI nutzt Redis, um Nutzerinformationen zwischenzuspeichern, damit nicht für jede Anfrage die Datenbank abgefragt werden muss, und die Python-Server kommunizieren über die Bibliothek redis-py mit dem Cache, die Verbindungen über mehrere Anfragen hinweg wiederverwendet.
Bei Asyncio beschädigt eine Anfrage, die nach dem Einreihen, aber vor dem Eintreffen ihrer Antwort abgebrochen wird, die Verbindung; die nächste, unabhängige Anfrage kann dann Daten erhalten, die darin zurückgeblieben sind. In einigen Fällen entsprachen die zurückgegebenen Daten dem, was der Anfragende erwartete, sodass ein Nutzer die Titel des Chat-Verlaufs eines anderen aktiven Nutzers sah – und in einem Zeitfenster von neun Stunden konnten einige ChatGPT-Plus-Abonnenten den Namen, die E-Mail-Adresse, die Zahlungsadresse, den Kartentyp, das Ablaufdatum und die letzten vier Ziffern der Karte eines anderen Nutzers sehen. Vollständige Kartennummern wurden nie offengelegt.
OpenAI nahm ChatGPT offline, behob den Fehler in redis-py, fügte redundante Prüfungen der Daten pro Anfrage hinzu, verbesserte die Protokollierung und benachrichtigte die betroffenen Nutzer. OpenAI schätzte, dass die offengelegten Abrechnungsinformationen 1,2 % der ChatGPT-Plus-Abonnenten betrafen, die in diesem Zeitfenster aktiv waren, und erklärte, die Zahl der Nutzer, deren Daten tatsächlich jemand anderem offenbart wurden, sei extrem niedrig gewesen.
ChatGPT wurde offline genommen; zahlungsbezogene Informationen von 1,2 % der aktiven ChatGPT-Plus-Abonnenten wurden in einem Zeitfenster von neun Stunden offengelegt – vollständige Kartennummern jedoch nicht.
Ein gemeinsam genutzter Verbindungspool ging davon aus, dass abgebrochene Anfragen spätere Antworten nicht beschädigen konnten – die Race Condition in redis-py.
Die Änderung vom 20. März ließ die Abbruchraten in die Höhe schnellen und verwandelte einen seltenen Fehler in eine realistische Offenlegung.
Der Cache von ChatGPT enthielt persönliche Daten und Zahlungsdaten, sodass aus einem Cache-Fehler ein Datenschutzvorfall wurde.
Auf dem Cache-Pfad wurde nichts validiert, bevor die Daten ausgeliefert wurden – es wurde nicht geprüft, ob die zurückgegebenen Daten zu dem anfragenden Nutzer gehörten.
Wenn gepoolte Cache-Verbindungen mehrere Nutzer bedienen, muss jede Antwort gegen den Anfragenden validiert werden – und eine Änderung, die die Abbruchraten in die Höhe schnellen lässt, ist eine potenzielle Verletzung der Isolation, nicht nur eine Störung.
OpenAI stellte den Chat-Verlauf innerhalb weniger Tage wieder her (mit Ausnahme einiger Stunden), und die Redis-Maintainer veröffentlichten einen Patch. Der Vorfall erregte sofort die Aufmerksamkeit der Regulierungsbehörden: Am 31. März verhängte Italiens Garante vorübergehend ein Verbot von ChatGPT und nannte dabei unter anderem die Datenpanne vom 20. März; OpenAI deaktivierte den Dienst in Italien und sah sich einem möglichen Bußgeld von bis zu 20 Millionen Euro oder 4 % des weltweiten Umsatzes gegenüber. Der Fall wurde zu einem Referenzpunkt dafür, wie schnell die Cache-Schicht eines KI-Dienstes aus einem Skalierungsproblem eine Datenschutzkrise machen kann.
DEN BELEGEN FOLGEN
Die Quellen
- March 20 ChatGPT outage: Here's what happened OpenAI · web.archive.org ·
- A bug revealed ChatGPT users' chat history, personal and billing data Help Net Security · helpnetsecurity.com ·
- Italy curbs ChatGPT, starts probe over privacy concerns Reuters · tech.yahoo.com ·