Abstrakcyjna ilustracja na ciemnogranatowym tle: po lewej stronie znajduje się pojedyncza mała ikona pliku obrazu, połączona cienkim świetlistym śladem z półprzezroczystym stosem paneli serwerowych, a stamtąd drugi ślad przechodzi przez świecący pierścień do skupiska bladych kafelków kont. Nie pojawia się żaden tekst, żadne osoby ani żadne logotypy organizacji. Logo OrcaRouter jest nałożone w prawym dolnym rogu.
AI Safety Incidents

Badacze wykorzystali Claude'a do zhakowania wewnętrznych systemów OpenAI w ramach łańcucha bug bounty

Autor

Magnus Corvin

Data publikacji

Najnowsze modele · 20Zobacz wszystkie modele →
Benchmarki: Artificial Analysis · aktualizowane codziennie
Powrót do wszystkich wpisów

25 lipca 2026 r. trzyosobowy zespół w firmie zajmującej się bezpieczeństwem Hacktron AI wykorzystał Claude Opus 5 od Anthropic do połączenia dwóch luk i przejęcia kont ChatGPT i Codex należących do pracowników OpenAI, a następnie użył jednego z tych kont do otwarcia pull requesta w wewnętrznym repozytorium źródłowym OpenAI. Punktem wejścia nie była strona logowania ani klucz API: była nim funkcja przesyłania obrazów na publicznym forum pomocy OpenAI, community.openai.com, które działa na otwartoźródłowym oprogramowaniu forumowym Discourse. Druga luka znajdowała się we własnym wspólnym mechanizmie logowania OpenAI, a nie na forum. Nie odczytano żadnego kodu źródłowego, nic nie scalono, nie naruszono żadnych danych klientów, a archiwum nie odnotowuje żadnych rzeczywistych szkód — były to badania bezpieczeństwa zgłoszone dostawcy, a nie atak na niego. Wpis jest datowany na 18 września 2026 r., czyli dzień, w którym TechCrunch poinformował o odkryciu. Ten incydent znajduje się obok innych udokumentowanych wpisów w Archiwum incydentów Orca AI, gdzie każdy wpis zawiera własne źródła, poziom dotkliwości, stopień pewności i oznaczenie sporności.

Dwie rzeczy sprawiają, że ta sprawa to coś więcej niż barwna historia z bug bounty. Pierwsza to szybkość: Hacktron twierdzi, że cała droga od pierwszego spojrzenia na forum do uzyskania dostępu do wewnętrznego repozytorium zajęła mniej niż 72 godziny, a model, od którego zaczęto, nie potrafił wykonać tego zadania. Druga to rozbieżność, którą ukrywają liczby z nagłówków — CVE wymieniane w doniesieniach, CVE-2026-32882, jest zapisane jako odczyt poza granicami, który powoduje awarię oprogramowania lub wyciek pamięci, a nie jako błąd umożliwiający wykonanie kodu. Własny biuletyn Discourse'a klasyfikuje ten wynik jako zdalne wykonanie kodu. Oba stwierdzenia są prawdziwe, a różnica między nimi to dokładnie miejsce, w którym faktycznie leży wkład AI.

Co Hacktron twierdzi, że znalazł, i kiedy

Hacktron opublikował swoje opracowanie „Hacking OpenAI” na własnej stronie 13 września 2026 r. The Wall Street Journal poinformował o nim wieczorem w czwartek 17 września, według TechCrunch, który podał to w piątek 18 września. Opisane wydarzenia miały miejsce około osiem tygodni wcześniej, a własna chronologia Hacktrona jest co do nich precyzyjna:

• 23 lipca 2026 — {{1}}zespół prześledza ścieżkę przesyłania HEIF w Discourse przez ImageMagick do libheif i znajduje przepełnienie sterty.{{/1}}

• 24 lipca 2026 — Claude Opus 4.8 opracowuje działający exploit wykonujący kod przy wyłączonym ASLR — standardowym mechanizmie ochrony opartym na losowaniu adresów.

• 25 lipca 2026, 06:00 UTC — używając nowszego modelu, zespół potwierdza niezawodne lokalne wykonywanie kodu poprzez przesłanie obrazu z włączonym ASLR.

• 25 lipca 2026 r., 08:00–10:00 UTC — zespół przesyła raport w ramach programu bug bounty OpenAI na platformie Bugcrowd.

• 25 lipca 2026, 10:00 UTC — exploit działa przeciwko własnej instancji Discourse Cloud zespołu, a następnie przeciwko forum OpenAI.

• 25 lipca 2026, 13:30–15:30 UTC — zespół używa konta Codex pracownika OpenAI, aby otworzyć nieszkodliwy pull request w wewnętrznym monorepo OpenAI, a następnie przerywa testowanie.

• 25 lipca 2026, 22:49:45 UTC — OpenAI odpowiada, potwierdzając, że problem został naprawiony, około 14 godzin po początkowym zgłoszeniu.

• 28 lipca 2026 — Discourse publikuje poradę bezpieczeństwa GHSA-vhm9-85gw-x335 wraz z wytycznymi dotyczącymi poprawek i ponownego zbudowania.

1 września 2026 — OpenAI wypłaca nagrodę w wysokości $6,500 i oznacza zgłoszenie jako rozpatrzone.

HTML timeline card titled 'From first look at the forum to a $6,500 bounty', subtitled 'All times UTC - dates and times as Hacktron's own write-up records them'. Ten rows read: 23 July 2026, Discourse HEIF upload path traced through ImageMagick to libheif; 24 July 2026, Claude Opus 4.8 working exploit with ASLR disabled; 24 July evening, Anthropic releases Claude Opus 5; 25 July 06:00 UTC, reliable local code execution with ASLR enabled; 25 July 08:00-10:00 UTC, report filed via Bugcrowd, then HackerOne for Discourse; 25 July 10:00 UTC, code execution on community.openai.com; 25 July 13:30-15:30 UTC, proof-of-access pull request opened and testing stops; 25 July 22:49 UTC, OpenAI confirms the issue is fixed, about 14 hours later; 28 July 2026, Discourse advisory GHSA-vhm9-85gw-x335 published; 1 September 2026, OpenAI pays $6,500 and marks the report resolved. The footer cites Hacktron AI's write-up and the Discourse advisory, and notes the elapsed time to internal repository access was under 72 hours.

Powyższe daty należą do Hacktrona, nie są rekonstrukcją. Data publikacji 13 września na jego własnym poście, raport Wall Street Journal z 17 września i artykuł TechCrunch z 18 września to odrębna, późniejsza sekwencja: prace odbyły się w lipcu, a tekst ukazał się w połowie września.

Jak przesłanie obrazu przerodziło się w przejęcie serwera

Łańcuch zaczyna się od przyziemnej funkcji. Discourse zwykle sprawdza przesyłane obrazy za pomocą biblioteki o nazwie FastImage, ale FastImage nie obsługuje HEIF, formatu kontenera, którego urządzenia Apple używają do zdjęć. Te pliki były więc przekazywane do narzędzia wiersza poleceń ImageMagick w celu konwersji, które przekazywało je do libheif do zdekodowania. To stawiało parser bezpośrednio przed plikami kontrolowanymi przez atakującego — dokładnie ten wzorzec, który ma na myśli komiks xkcd o zależnościach, cytowany przez Hacktron w jego źródłach.

Hacktron odkrył, że w pakiecie libheif zainstalowanym w obrazie Docker Discourse'a brakowało poprawek bezpieczeństwa. Obraz Discourse'a został zbudowany na Debianie 12, w którym zainstalowano libheif 1.19.7; Debian 13 w tamtym czasie wciąż dostarczał 1.19.8. Sam błąd znajduje się w HeifPixelImage::overlay(), która komponuje obraz nakładki na obraz bazowy. Zgodnie z własnym biuletynem libheif, gdy element potomny nakładki ma inną głębię bitową kanału alfa niż kanałów koloru, funkcja indeksuje płaszczyznę alfa, używając kroku kanału koloru zamiast kroku płaszczyzny alfa. W przypadku obrazu 100 na 50 z 10-bitowym kolorem i 8-bitową alfą biuletyn oblicza, że kod odczytuje 3 123 bajty poza koniec bufora o rozmiarze 7 168 bajtów.

To daje atakującemu wyciekłą pamięć sterty, co jest przydatne do pokonania randomizacji adresów — samo w sobie nie daje jednak powłoki. Przejście od wycieku do wykonania kodu to część, która wymagała modelu, i to ta część, której CVE nie opisuje. Łańcuch przekroczył następnie granicę zaufania, którą Hacktron uznaje za prawdziwą historię: forum OpenAI oferuje „Zaloguj się przez OpenAI” poprzez auth.openai.com, to samo logowanie jednokrotne, którego personel używa gdzie indziej. Przejęcie serwera forum oznaczało, że badacze mogli przejąć konta ChatGPT i Codex członków forum pracujących w OpenAI, bez żadnej interakcji ze strony ofiar. Jak ujmuje to Hacktron: „luka umożliwiająca eskalację nie jest specyficzna dla Discourse”, a każda usługa OpenAI pierwszej lub trzeciej strony korzystająca z tego logowania przyznałaby ten sam dostęp.

Ustalone i wywnioskowane

Archiwum przyznaje temu rekordowi wiarygodność A, status niekwestionowany, wysoki stopień ciężkości, bez odnotowanych rzeczywistych szkód. Te pola się potwierdzają. Relacja pochodzi jednak od jednego zespołu badawczego i została potwierdzona, a nie niezależnie zrekonstruowana — warto więc oddzielić to, co udokumentowane, od tego, co jedynie twierdzone.

Potwierdzone przez dokumenty pierwotne. CVE-2026-32882 istnieje, został opublikowany 19 maja 2026 r., dotyczy libheif 1.21.2 i starszych wersji oraz został naprawiony w libheif 1.22.0. Wpis MITRE przyznaje mu ocenę 7,1, z wektorem ataku sieciowym, niską złożonością, brakiem wymaganych uprawnień, wymaganą interakcją użytkownika oraz niskim wpływem na poufność i wysokim na dostępność — awaria lub wyciek pamięci. Biuletyn bezpieczeństwa Discourse GHSA-vhm9-85gw-x335, opublikowany 28 lipca 2026 r. i przypisany hacktronai-research, dotyczy tego samego CVE i ocenia wynik jako wysoki (High) z oceną 8,8, przy wymaganych niskich uprawnieniach, braku interakcji użytkownika oraz wysokim wpływie na wszystkie trzy aspekty: poufność, integralność i dostępność. Wymienia poprawione wersje 2026.7.0, 2026.6.1, 2026.5.2 i 2026.1.6 oraz stwierdza, że najnowszy obraz Docker zawiera poprawiony libheif.

Potwierdzone przez dwa niezależne media. To, że badacze użyli Claude’a do znalezienia i wykorzystania w ataku tego łańcucha, że przejęcie forum doprowadziło do uzyskania dostępu do kont pracowników, że OpenAI naprawiło to w ciągu około 14 godzin i zapłaciło 6500 dolarów, że dowodem dostępu był pojedynczy pull request oraz że zdaniem OpenAI testowanie samego forum wykraczało poza zakres programu bug bounty — wszystko to pojawia się w The Hacker News i TechCrunch, które bezpośrednio cytują opracowanie Hacktron.

Twierdzenie Hacktron, niezweryfikowane niezależnie.To, że wykonanie kodu na forum w ogóle osiągnięto w opisany sposób — poprzez pętlę autonomicznego agenta i testową instancję za pośrednictwem proxy — opiera się na relacji Hacktron i nie zostało odtworzone przez podmiot trzeci; The Hacker News podaje, że skontaktowało się z Hacktron z pytaniami o to, jak osiągnięto wykonanie kodu na forum i jaki był zakres dostępu do kont, i nie informuje, aby otrzymało odpowiedzi. Twierdzenie, że ta sama klasa podatności objęła Slack, Meta, GitHub Enterprise i frameworki webowe, jest — według własnej oceny The Hacker News — „nierównomiernie poparte”: podatność w Next.js jest potwierdzona w komunikacie Vercel, a opiekunowie libheif potwierdzili działający exploit dla błędu powiązanego z Meta, ale szersze twierdzenie o wykonaniu kodu w wielu aplikacjach nie zostało niezależnie potwierdzone. OpenAI nie opublikowało żadnego technicznego opisu podatności w logowaniu; potwierdziło ustalenie poprzez poprawkę i płatność, a nie poprzez udokumentowanie przejęć kont.

W ogóle nie ustalono. Do ilu kont pracowników można było dotrzeć — The Hacker News podaje „kilka”, TechCrunch podaje „wiele”, a Hacktron nie podaje żadnej liczby. Czy luka została kiedykolwiek wykorzystana przez kogoś innego: The Hacker News donosi, że nie ma oznak wykorzystania w rzeczywistych warunkach, i zauważa, że CVE nie znajdowało się na liście podatności rządu USA znanych jako wykorzystywane według stanu na połowę września 2026 r., zastrzegając jednocześnie, że lista ta nie jest dowodem w żadną stronę. A także czy organizacje, które już zainstalowały poprawki, powinny nadal szukać śladów wcześniejszego dostępu — The Hacker News podaje, że źródła milczą na ten temat.

Co zrobiły modele, a co zrobili ludzie

Skok możliwości to część, którą podkreśla sam Hacktron, i jest ona udokumentowana jego własnymi słowami, a nie wywnioskowana. Zespół najpierw użył Claude Opus 4.8, w kompilacji udostępnionej badaczom cyberbezpieczeństwa, do zbadania zainstalowanego pakietu libheif i zbudowania exploita przy wyłączonym ASLR. Przy włączonym ASLR utknął na kilku sesjach. Anthropic udostępnił Claude Opus 5 wieczorem 24 lipca 2026 r.; w nowej sesji nowy model wytworzył działający exploit ARM64 dla lokalnego Maca w ciągu około trzech godzin, a do 6:00 następnego ranka został on przeniesiony na konfigurację x86-64 używaną przez Discourse.

Claude Opus 5 został również wyposażony w zabezpieczenia przed pisaniem kodu exploitów dla rzeczywistych celów. Hacktron twierdzi, że obszedł je, kierując model na własną instancję Discourse Cloud, proxowaną przez hosta o nazwie rce.ee/ctf-forum, aby cel wyglądał jak ćwiczenie capture-the-flag, oraz uruchamiając go w autonomicznej pętli celów. Zespół wyraźnie zaznacza, że nie był to hacking bez nadzoru: „wprawne ludzkie wskazówki pozostawały ważne” – pisze, podczas gdy ilość pracy, jaką mogła wykonać mała drużyna, dramatycznie wzrosła. W szerszej kampanii HEIF Heist Hacktron twierdzi, że użył GPT-5.6 Sol firmy OpenAI w przypadkach, gdy z góry nic nie wiedział o celu.

Ekonomia to argument, który Hacktron chce, aby czytelnik zapamiętał. W szerszej kampanii — śledzącej tę samą klasę błędów w Slacku, Meta, GitHub Enterprise, Ruby on Rails oraz frameworkach Next.js, Astro i Gatsby — twierdzi on, że dwa miesiące pracy trzech badaczy kosztowały mniej niż 3000 dolarów w tokenach, a dostosowanie do każdego nowego celu zajmowało jeden lub dwa dni. Twierdzi również, że nie wie o żadnej firmie, która wykryła tę aktywność poza Shopify, mimo że wysłano tysiące obrazów testowych, a procesory obrazów wielokrotnie ulegały awarii.

Co się potem zmieniło?

Discourse otrzymał zgłoszenie w sobotę, odpowiedział w niedzielę, do poniedziałku miał poprawkę i opublikował swój komunikat bezpieczeństwa 28 lipca, dodając izolację przetwarzania obrazów w piaskownicy jako dodatkową warstwę obrony. Jego komunikat ostrzega osoby samodzielnie hostujące, że sama aktualizacja interfejsu internetowego może nie zastąpić biblioteki bazowej i że wymagana jest pełna przebudowa z /var/discourse. Debian opublikował aktualizację bezpieczeństwa dla libheif w Debianie 13 w dniu 8 sierpnia 2026 r., oznaczoną jako DSA-6417-1. W projekcie upstream Hacktron wskazuje czytelnikom libheif 1.23.4 jako najnowsze wydanie bezpieczeństwa na dzień 14 września 2026 r. i zauważa, że pakiety dystrybucji mogą zawierać przeniesione poprawki pod starszym numerem wersji, więc należy sprawdzić komunikat dotyczący pakietu, a także wersję upstream.

W przypadku OpenAI poprawka została wdrożona w ciągu około 14 godzin od zgłoszenia z 25 lipca, a nagroda została wypłacona 1 września. Firma dołączyła do wypłaty wyjaśnienie zakresu: testowanie przeciwko hostowanemu przez Discourse community.openai.com zostało wyraźnie wyłączone z jej programu bug bounty, a nagroda uwzględnia znalezisko po stronie OpenAI, a nie działania przeciwko Discourse. Warto to uważnie przeczytać. 6500 USD to zapłata za znalezisko dotyczące logowania, a nie za łańcuch na forum, a prace na forum, które umożliwiły ten łańcuch, były, według samego OpenAI, poza zakresem.

Dlaczego CVE nie pasuje do nagłówka

HTML comparison card titled 'Two advisories, two different severity scores', subtitled 'The library bug is an out-of-bounds read; the forum advisory scores the outcome as code execution'. Two columns compare CVE-2026-32882 and GHSA-vhm9-85gw-x335: published 19 May 2026 versus 28 July 2026; stated impact heap buffer out-of-bounds read versus remote code execution; CVSS base score 7.1 High versus 8.8 High; attack complexity low in both; privileges required none versus low; user interaction required versus none; confidentiality low versus high; integrity none versus high; availability high in both; fixed in libheif 1.22.0 versus Discourse 2026.7.0, 2026.6.1, 2026.5.2 and 2026.1.6. A footer cites the MITRE CVE record and the Discourse advisory.

Relacjonowanie tego przypadku często sprowadza dwie różne oceny istotności do jednej. Biuletyn libheif i CVE opisują odczyt poza zakresem, którego wpływ na poufność oceniono jako niski, a wpływ na dostępność jako wysoki: awaria lub wyciek pamięci. Biuletyn Discourse opisuje, co się stało, gdy ten odczyt połączono z pracą nad eksploatacją i drugą luką, i ocenia go na 8,8 przy pełnym wpływie we wszystkich trzech kategoriach. Żadna z tych ocen nie jest błędna; odpowiadają na różne pytania. CVE odpowiada na pytanie „jak poważny jest błąd w bibliotece?”, a biuletyn forum odpowiada na pytanie „jak poważny jest problem na forum?”

Praktyczną konsekwencją jest to, że czytelnik przeglądający kanały CVE w poszukiwaniu krytycznej luki umożliwiającej zdalne wykonanie kodu w libheif nie znajdzie jej tutaj i może zasadnie uznać, że problem go nie dotyczy. Własne wytyczne Hacktron są przeciwne: każdą usługę, która przyjmuje dostarczane przez użytkownika obrazy HEIC, HEIF lub AVIF i dekoduje je przez niezałatany libheif, należy traktować jako narażoną, a sam numer wersji nie jest wystarczającym sprawdzeniem, ponieważ backporty są wdrażane pod nieaktualnymi ciągami wersji. Trzy zalecane środki zaradcze to: aktualizacja libheif i libde265 przez kanał bezpieczeństwa dystrybucji lub bieżące wydanie upstream; wyłączenie dekodowania niezaufanych plików HEIF i AVIF tam, gdzie nie jest potrzebne, albo odizolowanie przetwarzania obrazów w efemerycznej piaskownicy; oraz — środek o charakterze ogólniejszym niż biblioteki obrazów — ograniczenie usług, którym ufa system logowania jednokrotnego, i wymaganie świeżej weryfikacji tożsamości przed wrażliwymi działaniami zamiast zaufania istniejącej sesji.

Abstract illustration on a deep navy field: a single softly glowing archway stands in the centre, with pale rounded application tiles floating behind it and connected to it by very thin light threads, while smaller dim blue hexagonal glyphs sit in front of it, separated by empty dark space. No text, no people and no organisation logos appear. The OrcaRouter logo is composited in the bottom-right corner.

Ten ostatni punkt to wniosek możliwy do przeniesienia. Forum nie było luką w zabezpieczeniach; było drzwiami. Publiczna usługa o niższym poziomie zaufania, współdzieląca dostawcę tożsamości z wewnętrznymi narzędziami, sprawiała, że złamanie najsłabszego elementu w środowisku dawało dostęp do najsilniejszego. Nic w relacji Hacktrona nie sugeruje, że OpenAI postąpił niestarannie w kwestii samego forum — Discourse, według oceny samego zespołu, „tak naprawdę nie jest łatwym celem” — i właśnie dlatego ten przypadek jest przytaczany: zawiodła granica zaufania, a nie błąd.

Porównane w tym artykule2

Wykryto na podstawie tego artykułu · Benchmarki: Artificial Analysis · aktualizowane codziennie