Parameter opublikował 28 października 2026 roku opis luki w publicznych linkach do rozmów ChatGPT. W kontrolowanym teście badacze uzyskali dostęp do treści prywatnej rozmowy na innym koncie i wysłali wybrany fragment na własny serwer. Parameter podał, że OpenAI naprawiło problem 26 października. Opis badań Parameter

Parameter przeprowadził test na oddzielnych kontach. Zespół wyliczył ostatnie rozmowy użytkownika, pobrał treść prywatnej rozmowy, która nie była udostępniona badaczom, a następnie przesłał wybrane dane na serwer pod ich kontrolą. Parameter nie zgłosił wykorzystania luki w praktyce.

Czy trzeba było kliknąć Preview? W stabilniejszej wersji demonstracji użytkownik otwierał udostępnioną rozmowę i raz klikał przycisk Preview. W późniejszym wariancie podgląd uruchamiał się automatycznie, więc wystarczyło otworzyć link. Parameter odtworzył ten wariant trzykrotnie na oddzielnym koncie, także po pełnym odświeżeniu strony.

Jak Preview i MathLive otworzyły drogę do danych

Schemat pokazuje trzy etapy: udostępniony Preview z MathLive, niezweryfikowaną wiadomość z HTML i ramkę bez izolacji.

Wątek HTML w Preview działał w odizolowanej ramce, czyli osobnym obszarze strony z ograniczonym dostępem do głównego interfejsu ChatGPT. Problem powstał na styku tej ramki i biblioteki MathLive, używanej przez grafikę w rozmowie.

Grafika ładowała MathLive w głównej stronie ChatGPT. Biblioteka nasłuchiwała komunikatów między ramkami, ale przyjmowała wiadomość zmieniającą układ klawiatury bez sprawdzania, z której ramki pochodzi. Wiadomość mogła zawierać surowy HTML. MathLive umieszczał go na stronie, a kod tworzył nową ramkę bez atrybutu sandbox. Przeglądarka traktowała tę ramkę jako część chatgpt.com, co pozwalało uruchomionemu w niej kodowi działać w zalogowanej sesji.

YouTube odegrał w demonstracji ograniczoną rolę: badacze wykorzystali odpowiedź JSONP z usługi oEmbed jako końcowy sposób obejścia polityki bezpieczeństwa treści, która blokowała skrypty wstawiane bezpośrednio. Nie był to źródłowy błąd. Parameter wskazał trzy elementy łańcucha: brak sprawdzenia nadawcy wiadomości, możliwość przekazania surowego HTML oraz utworzenie ramki bez izolacji.

Jak przebiegały badania i naprawa

Chronologia Parameter pokazuje, jak od sprawdzenia pojedynczego mechanizmu badacze doszli do demonstracji na publicznym linku i testu prywatnych danych:

  • 13–14 października: Parameter potwierdził ścieżkę komunikatu MathLive do HTML w kodzie produkcyjnym, a następnie odtworzył wykonanie dowolnego kodu JavaScript.
  • 16–17 października: badacze sprawdzili dostarczenie łańcucha przez publiczny link. Następnie odtworzyli wariant, w którym Preview otwierał się automatycznie.
  • 18–19 października: Parameter zgłosił problem OpenAI w ramach programu bug bounty i dodał kontrolowany dowód dostępu do prywatnej rozmowy.
  • 21 października: według Parameter OpenAI odtworzyło problem, a jego ocenę podniesiono z P2 do P1.
  • 22–23 października: Parameter relacjonował etapowe działania naprawcze. Zmiany w polityce bezpieczeństwa treści blokowały część łańcucha, gdy aktualizacja jednego z dwóch frontendów ChatGPT była jeszcze w toku.
  • 26 października: oba objęte problemem frontendy odrzucały komunikaty użyte w demonstracji, a OpenAI uznało sprawę za rozwiązaną. Parameter podał też, że otrzymał 5 000 dolarów nagrody za zgłoszenie.

Parameter opublikował opis badań 28 października. The Hacker News podał, że użytkownicy nie musieli niczego instalować ani resetować, ponieważ naprawa dotyczyła frontendu ChatGPT.