Przejdź do treści

Czy ChatGPT jest bezpieczny? Jeden link do udostępnionej rozmowy przejmował konto

Karta incydentu z pomarańczową pieczątką NAPRAWIONE 26.10 i kartami danych: 8 dni od zgłoszenia do naprawy, 1 klik wymagany od ofiary, nagroda bug bounty 5000 USD; nagłówek JEDEN LINK PRZEJMOWAL KONTO CHATGPT; odczyty 2.11.2026

28 października zespół badawczy firmy Parameter opisał, jak przejął pełną kontrolę nad kontem ChatGPT jednym kliknięciem. Nie potrzeba było hasła, błędu w logowaniu ani żadnego złośliwego pliku: wystarczyło, że ofiara otworzyła link do udostępnionej rozmowy. Kod wykonywał się wtedy jako prawdziwa strona chatgpt.com, więc mógł wylistować wszystkie rozmowy, wczytać treść tych prywatnych, których nikt nigdy nikomu nie udostępniał, i w praktyce zrobić z kontem cokolwiek. Zgłoszenie poszło do programu bug bounty OpenAI 18 października, firma potwierdziła je trzy dni później, podniosła wagę błędu z P2 na P1, a 26 października naprawiła obie wersje frontendu. Dziura już nie istnieje, bo naprawa siedzi po stronie OpenAI i nie wymaga od ciebie żadnej akcji. Ten tekst rozkłada łańcuch ataku na czynniki pierwsze i wypisuje, co z niego wynika dla zwykłego konta.

Najważniejsze informacje

CoSzczegóły
Kto znalazłZespół badawczy firmy Parameter, autor wpisu Mukul Goyal, publikacja 28.10.2026
WektorUdostępniony link do rozmowy (funkcja share); jedyna wymagana akcja to otwarcie linku
SkutekKod JavaScript wykonywał się jako chatgpt.com: token sesji, lista rozmów, treść prywatnych rozmów, dowolna akcja na koncie
Zgłoszenie18.10.2026 do bug bounty OpenAI, 21.10 potwierdzenie, waga podniesiona z P2 na P1
Naprawa26.10.2026, obie wersje frontendu odrzucają zgłoszone wiadomości
NagrodaŁącznie 5000 USD
Ataki na realnych użytkownikachBrak dowodów, opis obejmuje kontrolowane próby między kontami badaczy
Stan wiedzy2.11.2026

Jak wyglądał atak krok po kroku

Atakujący przygotowuje zwykłą rozmowę, w której oprócz tekstu siedzi wykres i blok kodu HTML z własnym payloadem. Rozmowę publikuje funkcją udostępniania i wysyła ofierze link w formacie /share/ z identyfikatorem. Otwarcie tego linku było jedyną wymaganą akcją, jak napisali sami badacze: „Opening the shared link was the only required action”. Najstabilniejsza wersja ataku wymagała jeszcze jednego kliknięcia w przycisk podglądu, ale wariant dopracowany 17 października uruchamiał się sam po ok. 4,5 sekundy od otwarcia linku, także po twardym odświeżeniu strony, i Parameter odtworzył go trzykrotnie bez wyjątków.

Potem do gry wchodzi łańcuch z pięciu ogniw, z których każde z osobna to klasyczny, dobrze opisany od lat błąd:

  1. Wykres w rozmowie ładuje w głównej stronie chatgpt.com bibliotekę MathLive, otwartoźródłowy komponent klawiatury do wyrażeń matematycznych.
  2. MathLive instaluje odbiornik wiadomości postMessage, który obsługuje jej wirtualną klawiaturę, ale nie sprawdza ani domeny nadawcy, ani źródła wiadomości.
  3. Podgląd HTML działa poprawnie w izolowanej ramce na osobnej domenie, jednak jego wiadomość zmieniająca układ klawiatury niesie ze sobą HTML, który ląduje w innerHTML prawdziwej strony, bo funkcja createHTML niczego nie czyściła, tylko oznaczała treść jako zaufaną.
  4. Wstrzyknięta ramka bez atrybutu sandbox dziedziczy tożsamość chatgpt.com zamiast siedzieć w izolacji.
  5. Polityka bezpieczeństwa CSP blokuje zwykłe skrypty, ale dopuszcza YouTube, a endpoint oEmbed serwisu z parametrem callback zwracał kod JavaScript przed walidacją parametru. Badacze przetestowali to wartością „callback=globalThis.__marker=31337;void”, a marker pojawił się w oknie strony.

W tym momencie przeglądarka ofiary wykonywała dowolny kod atakującego z pełnymi uprawnieniami chatgpt.com. Cała konstrukcja nie ma w sobie nic egzotycznego: jak podsumował jeden z komentujących na Hacker News, pochwalić trzeba pomysłowość składania starych klocków, postMessage, JSONP i iframe, a nie nową technologię.

Co atakujący mógł zrobić z kontem

Pierwszym krokiem payloadu było odczytanie z elementu #client-bootstrap tokena sesji i identyfikatora konta, które dały się zestawić dla pewności. Z takim tokenem kod wysyłał zwykłe, uwierzytelnione żądania do API ChatGPT: listę wszystkich rozmów konta i treść wybranej rozmowy. Parameter pokazali w dowodzie koncepcyjnym odczyt prywatnej rozmowy ofiary, która nigdy nie była udostępniana atakującemu. Dane wyszły z przeglądarki żądaniem obrazka na serwer zewnętrzny, czyli w sposób, którego użytkownik nie widzi.

Zasięg wykraczał jednak dalej niż to, co badacze pokazali w PoC. Wprost napisali, że kod mógł „perform any action on behalf of the victim’s ChatGPT account”, więc nie był ograniczony do endpointów, których użyli w demonstracji. W praktyce oznacza to tyle, że przejmujący mógłby czytać historię, zmieniać ustawienia i działać jako właściciel konta tam, gdzie API na to pozwala. Wartość prywatnych rozmów sama w sobie jest spora: ludzie wklejają do czatu kod z pracy, dokumenty i problemy zdrowotne, a co się z takim wyciekiem robi, pokazała osobno afera wycieku rozmów w Muse AI (Meta AI: wyciek rozmów).

Dlaczego izolacja nie wystarczyła

Podgląd HTML w ChatGPT działał w porządnym sandboxie na osobnej domenie i w tej izolacji nic złego się nie działo. Łańcuch powstał dopiero na styku trzech funkcji: izolowanego podglądu, wykresu z MathLive żyjącego w głównej stronie i polityki CSP, która dla własnych potrzeb dopuszczała YouTube. Każdy styk osobno wyglądał na przemyślany, a razem dały przepust na całe konto. Parameter radzą twórcom aplikacji sprawdzać origin i source każdej wiadomości postMessage, nie przepuszczać HTML między oknami, sandboxować tworzone dokumenty i traktować CSP jako warstwę zapasową, nie główną zaporę.

5000 dolarów i gorąca dyskusja na Hacker News

Oś czasu sprawy jest szybka. 13 października badacze potwierdzili obecność MathLive w kodzie produkcyjnym, 16 października dostali atak działający między kontami przez publiczny share, 17 października dopracowali wariant automatyczny, a 18 października zgłosili wszystko do programu bug bounty OpenAI, który prowadzony jest na platformie Bugcrowd. Trzy dni później OpenAI potwierdziło zgłoszenie i podniosło wagę z P2 na P1, między 22 a 23 października weszły częściowe zmiany w CSP, a 26 października obie wersje frontendu odrzucały już zgłoszone wiadomości i sprawa została zamknięta. Od zgłoszenia do pełnej naprawy minęło 8 dni. Wypłata wyniosła łącznie 5000 dolarów.

Ta ostatnia liczba podpaliła dyskusję. Wątek na Hacker News z 31 października zebrał 360 punktów (stan 2 listopada), a komentarze w większości nie rozeszły się z opinią, że za przejęcie dowolnego konta w produkcie wartym setki miliardów dolarów to śmiesznie mało. „Powinno być 50 tysięcy z czystego wstydu” napisał jeden z komentujących, a inny dodał, że na taki poziom płacił jako menedżer programu bug bounty w małym starcie. Były też głosy w drugą stronę: ktoś policzył, że naprawa dziury warta jest OpenAI miliony, więc sama reakcja firmy ma większą wartość niż czek. Kilku badaczy przypomniało wprost, czego rynek się boi: badacze zniechęceni niskimi stawkami sprzedają takie znaleziska tam, gdzie zapłacą więcej, i nikt tego nie zgłasza firmie. Porównanie z sąsiedztwa jest wymowne: badacz, który znalazł podobny problem przejmowania kont w Copilocie Microsoftu, napisał, że firma poprosiła go o dodatkowy materiał, naprawiła błąd i nie zapłaciła nic.

Co z tego wynika dla zwykłego użytkownika

Najważniejsza rzecz jest najkrótsza: naprawa z 26 października siedzi po stronie OpenAI, więc nie musisz nic robić, zmieniać hasła ani wylogowywać się „na zapas”. Artykuł Parameter opisuje wyłącznie kontrolowane próby między kontami badaczy i nie ma dowodów na wykorzystanie dziury wobec realnych użytkowników; nie ma też żadnej wzmianki o tym, by OpenAI unieważniało sesje, więc ta kwestia pozostaje otwarta.

Zostaje higiena, która wykracza poza tę jedną sprawę. Link do udostępnionej rozmowy to link od drugiego człowieka, więc od nieznajomych traktuj go tak, jak traktujesz podejrzany załącznik: jeśli nie wiesz, kto i po co dzieli się z tobą rozmową, nie otwieraj. Własne udostępnione linki warto raz na jakiś czas przejrzeć i posprzątać, zarządzanie nimi siedzi w ustawieniach prywatności obok eksportu danych, opisywaliśmy to w przewodniku po historii rozmów. Przy podejrzeniu, że ktoś nakłonił cię do kliknięcia w coś podejrzanego na chatgpt.com, wylogowanie i ponowne zalogowanie zaczyna nową sesję, a listę rozmów zawsze możesz przejrzeć pod kątem rzeczy, których nie pamiętasz.

Co z tego dla Polski

Funkcja udostępniania rozmów wygląda tak samo w polskich kontach jak wszędzie indziej, luka działała identycznie, a naprawa objęła wszystkich naraz. Polskich doniesień o nadużyciach z tej dziury nie ma, wprost: ani w prasie, ani w zgłoszeniach, które by to opisywały, o czym piszemy ze stanem na 2 listopada. Z domowego autocompletu widać za to, jak ludzie pytają o bezpieczeństwo produktu: rodzina fraz „czy chatgpt jest bezpieczny” ma aż osiem podpowiedzi, łącznie z wariantem o planie Plus. Odpowiedź na tę jedną lukę brzmi: od 26 października tak, ale bezpieczeństwo konta to suma nawyków, nie tylko listy poprawek po stronie OpenAI. Osobną opowieścią jest to, co ChatGPT robi z twoimi danymi w normie, na przykład ciasteczko pomiarowe __obi, które wynosi tożsamość konta na strony reklamodawców.

Najczęstsze pytania

Czy ChatGPT jest bezpieczny?

Po tej konkretnej luce: tak, od 26 października 2026 jest naprawiona po stronie OpenAI i nie wymaga żadnej akcji z twojej strony. OpenAI zareagowało w 8 dni od zgłoszenia, podniosło wagę błędu do najwyższej kategorii i naprawiło obie wersje frontendu. Bezpieczeństwo konta zależy jednak także od ciebie: głównym wektorem tej dziury był link do udostępnionej rozmowy, więc ostrożność wobec linków od nieznajomych pozostaje w mocy.

Czy ChatGPT Plus jest bezpieczny?

Luka siedziała w kodzie frontendu wspólnym dla wszystkich planów, więc obejmowała konta Free, Plus, Pro i Business bez wyjątków. Naprawa też jest wspólna, nie ma osobnej poprawki dla płacących. Plan abonamentowy nie zmienia podatności strony, którą otwierasz w przeglądarce.

ChatGPT wyciek danych: czy to ta sama sprawa?

Nie ma dowodów, by przez tę dziurę wyciekły dane realnych użytkowników. Parameter pokazali możliwość przejęcia konta na własnych kontach testowych, a OpenAI naprawiło błąd przed publikacją analizy. Incydent pokazuje jednak, jak łatwo prywatne rozmowy mogą opuścić konto, więc wyciek danych pozostaje realnym skutkiem takiej klasy błędów, gdy trafią w ręce kogoś niegodnego zaufania.

Źródła

Powiązane artykuły