Nagroda za błędy dosięgła własnego kodu OpenAI

Między 23 a 25 lipca mały zespół badaczy bug bounty, działających pod nazwą Hacktron, połączył dwa zwykłe błędy bezpieczeństwa w dostęp do wewnętrznego kodu źródłowego OpenAI. Pierwszym był błąd przepełnienia bufora na kopcu w libheif, bibliotece obrazów o otwartym kodzie, błąd już po cichu naprawiony wcześniej w projekcie macierzystym rok wcześniej, ale nigdy nie otrzymał numeru CVE, więc większość używających go nigdy nie wiedziała, że trzeba go załatać. Drugim było błędne skonfigurowanie jednokrotnego logowania na własnym forum pomocy społeczności OpenAI. Wgranie spreparowanego obrazu HEIF przez oprogramowanie Discourse tego forum wywołało przepełnienie i dało badaczom wykonanie kodu na odległość na serwerze forum jeszcze przed rankiem 25 lipca.

Odtąd błąd SSO pozwolił im przejąć konta ChatGPT i Codex pracowników, którzy używali tego samego logowania zarówno w serwisie społecznościowym OpenAI, jak i w jego wewnętrznych narzędziach. Jeden z tych pracowników miał konto Codex połączone z organizacją GitHub OpenAI. Wykorzystując to połączenie, badacze otworzyli demonstracyjny pull request, oznaczony numerem 1186742, wewnątrz własnego wewnętrznego repozytorium kodu OpenAI. OpenAI potwierdziła tej samej nocy, że problem został naprawiony, i wypłaciła 1 września nagrodę 6500 dolarów przez swój program.

Jeden błąd, kilka firm

OpenAI nie była jedynym celem. Ta sama usterka libheif, ścigana w ramach projektu, który badacze nazywają HEIF Heist, dała zespołowi punkty zaczepienia w kilku innych firmach, które także prowadzą potoki przetwarzania obrazów zbudowane na tej samej bibliotece.

CelCo osiągnęli badaczeWynik
OpenAIKonto pracownika, potem PR wewnątrz wewnętrznego monorepoNagroda 6500 dolarów, naprawione w ciągu jednego dnia
SlackPotok przetwarzania obrazów oparty na libheifZgłoszone przez program bug bounty Slacka
MetaPotok przetwarzania obrazów oparty na libheifZgłoszone przez program bug bounty Mety
GitHub EnterprisePotok przetwarzania obrazów oparty na libheifZgłoszone przez program bug bounty GitHub

Badacze twierdzą, że cały dwumiesięczny projekt HEIF Heist, obejmujący wszystkie cztery firmy, kosztował ich mniej niż 3000 dolarów w wykorzystaniu modeli AI. To jest prawdziwa najważniejsza liczba: pojedynczy, po cichu naprawiony błąd bez CVE, we współdzielonej bibliotece o otwartym kodzie, był wystarczająco tani, by trzyosobowy zespół zamienił go w płatne znaleziska w czterech najlepiej chronionych firmach branży, wykorzystując model AI do wykonania większości pracy analitycznej i łączenia exploitów.

Słabym punktem nie był model

Kusi, by czytać to jako historię o modelu AI, który samodzielnie włamuje się do systemów. Nie o to chodzi. Claude Opus 4.8 był narzędziem badaczy do znalezienia przepełnienia, zbudowania działającego exploitu i połączenia go z błędem SSO szybciej i taniej, niż mógłby to zrobić sam ludzki zespół. Rzeczywiste słabe punkty były niepozorne i znane: stary błąd w bibliotece, który nigdy nie otrzymał numeru CVE i dlatego nigdy nie został załatany wszędzie, gdzie był używany, konfiguracja jednokrotnego logowania, która pozwalała jednemu logowaniu otworzyć kilka niepowiązanych systemów, oraz konto asystenta kodu pracownika, które miało dostęp do zapisu w najbardziej newralgicznym repozytorium firmy.

Nic z tego nie wymagało pokonania własnej obrony AI OpenAI, bo nic z tego w ogóle nie dotyczyło systemów AI OpenAI. Forum pomocy społeczności, instalacja Discourse działająca na przestarzałym kodzie obsługi obrazów, była drzwiami. Własne konto pracownika, i wszystko, z czym to konto akurat było połączone, było korytarzem, który wiódł od tych drzwi do monorepo.

Co europejska firma powinna naprawdę sprawdzić

Każda z czterech firm dotkniętych w tym projekcie prowadzi poważny program bezpieczeństwa dostawców, a każda z nich wciąż miała tę samą podatność: wewnętrzny system dostępny przez konto, którego integracja z asystentem kodu AI sięgała dalej, niż ktokolwiek to zmapował. Typowa ocena ryzyka dostawców ocenia narzędzia SaaS, które firma kupuje bezpośrednio. Rzadko pyta, z czym po drugiej stronie połączone jest konto Codex, Claude Code czy Copilot programisty, albo co się stanie, jeśli akurat to jedno logowanie zostanie przejęte gdzieś bez związku z własnymi systemami firmy.

Ta luka ma znaczenie w świetle NIS2 i Cyber Resilience Act, gdzie zegar zgłoszenia zaczyna się, gdy incydent zostaje wykryty, a nie gdy się zdarza. W tym przypadku wykrycie pochodziło od zewnętrznych badaczy prowadzących program nagród, a nie z wewnętrznego monitorowania. Firma, która dziś nie może odpowiedzieć, z jakimi innymi platformami połączone są konta asystentów AI jej programistów, nie ma realnego sposobu, by wiedzieć, czy ten sam łańcuch już do niej dosięgnął.