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
Co złośliwy link pozwalał zrobić w teście
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
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.