Trzy Godziny, Nie Trzy Miesiące
23 lipca trzej badacze bezpieczeństwa z Hacktron patrzyli na przepełnienie bufora na stercie w libheif, bibliotece dekodującej pliki zdjęć HEIC i HEIF. Mieli teorię. Własne forum społeczności OpenAI, community.openai.com, działało na Discourse. Potok przesyłania plików w Discourse przekazywał nierozpoznane formaty obrazów wprost do ImageMagick, który zależał od tej samej podatnej libheif. Claude Opus 4.8 spędził kilka sesji na próbach zamiany teorii w działającego exploita i nie potrafił ominąć randomizacji przestrzeni adresowej. Badacze odłożyli próbę na bok.
Potem, wieczorem 24 lipca, Anthropic wypuściło Claude Opus 5. Zespół dał nowemu modelowi ten sam problem. W ciągu trzech godzin miał działającego exploita ARM64 na lokalnego Maca, po czym sam przeniósł go do produkcyjnego środowiska Discourse opartego na x86-64 i jemalloc. O 06:00 UTC 25 lipca exploit działał przeciwko lokalnemu celowi. O 10:00 UTC działał przeciwko żywemu forum OpenAI.
Błąd, Którego Nikt Naprawdę Nie Musiał Łatać
Luka w libheif nie była nowym odkryciem. Została już naprawiona wyżej w łańcuchu, po cichu, bez przypisania jej numeru CVE. Brak CVE oznaczał brak alarmu dla zespołu bezpieczeństwa Debiana, więc Debian 12, obraz bazowy Discourse, nigdy nie przejął poprawki. Discourse odziedziczył lukę przez ImageMagick. Forum OpenAI odziedziczyło ją przez Discourse. Trzy organizacje, trzy osobne decyzje o niedziałaniu, żadna z nich błędna sama w sobie.
Samo naruszenie forum pozostałoby ograniczone. To, co zmieniło je w incydent OpenAI, to jednolite logowanie łączące forum z kontami pracowników w ChatGPT i Codex. Przejęcie konta na forum dało badaczom sesję prowadzącą dalej do Codex. Codex był podłączony do GitHub. GitHub przechowywał monorepozytorium openai/openai. Dziewięć elementów, dziewięć osobnych zespołów, jedna ciągła droga od niezałatanej biblioteki zdjęć do kodu źródłowego.
Jak Szybko Naprawdę Zamknął Się Łańcuch
Hacktron opublikował własną chronologię co do minuty. Zestawiona w całość, odległość między modelem, który nie potrafił skończyć zadania, a modelem, który przeszedł wprost przez granicę tożsamości OpenAI, wynosiła dokładnie jedną premierę produktu.
| Czas (UTC) | Wydarzenie | Sprawca |
|---|---|---|
| 23 lip, 05:00-06:00 | Zidentyfikowano przepełnienie w libheif; Opus 4.8 nie tworzy niezawodnego exploita | Człowiek + Opus 4.8 |
| 24 lip, wieczór | Wydano Claude Opus 5; dostaje ten sam cel | Anthropic |
| 25 lip, 06:00 | Potwierdzono działającego exploita ARM64 lokalnie na Macu | Opus 5 |
| 25 lip, 10:00 | Osiągnięto zdalne wykonanie kodu na Discourse Cloud, odczytano /etc/hosts | Opus 5, kierowany przez ludzi |
| 25 lip, 13:30-15:30 | Osiągnięto konto pracownika w ChatGPT i Codex; wykazano dostęp, wstrzymano testy | Ludzcy badacze |
| 25 lip, 22:49 | OpenAI potwierdza wdrożoną poprawkę | OpenAI |
| 1 wrz | OpenAI wypłaca nagrodę 6500 dolarów wyłącznie za znalezisko SSO | OpenAI |
Zbudowanie exploita w trzy godziny to nagłówek. Częścią wartą zastanowienia są 22 godziny i 49 minut między momentem, gdy badacze dotarli do konta pracownika, a momentem, gdy OpenAI potwierdziło poprawkę. To był rzeczywisty czas reakcji, wobec którego wystawiono łańcuch na próbę. Wytrzymał.
Dlaczego To Liczy Się Dla Każdego Operatora w UE, Nie Tylko Dla Laboratoriów AI
Wniosek Hacktron jest bez ogródek: bezpieczeństwo długo opierało się na złożoności jako fosie obronnej, na założeniu, że rozwój exploita wymaga dobrze finansowanego zespołu i miesięcy czasu. Właśnie tę fosę Opus 5 usunął przy tym błędzie. Badacze napisali, że praca, która wcześniej wymagała rzadkich, wyspecjalizowanych kompetencji, może teraz zostać skompresowana w moc obliczeniową. Dodali, że skok od Opus 5 do kolejnego modelu był już widoczny w ich własnych testach.
Dla firmy objętej NIS2, w Polsce wdrożonym przez nowelizację ustawy o Krajowym Systemie Cyberbezpieczeństwa, ta kompresja spada na zegar, nie tylko na budżet. Podmioty kluczowe i ważne muszą zgłosić istotny incydent w ciągu 24 godzin od powzięcia o nim wiedzy i złożyć pełny raport w ciągu 72 godzin. Łańcuch Hacktron, od działającego exploita do przejętego wewnętrznego repozytorium, zamknął się dokładnie w tym samym oknie 72 godzin. Zegar zgłoszeniowy i zegar atakującego nie biegną już z różną prędkością. Proces wykrywania zbudowany na dni, a nie na godziny, jest zbudowany dla niewłaściwego przeciwnika.
Sedno Sprawy
Nikt w tej historii nie działał lekkomyślnie. OpenAI prowadziło program nagród i wypłaciło w ciągu kilku dni. Hacktron ujawnił lukę odpowiedzialnie i zatrzymał się w chwili, gdy dostęp został wykazany. Discourse dostarczyło poprawkę w ciągu 48 godzin od zgłoszenia. System zadziałał dokładnie tak, jak zaprojektowano. Model AI mimo to dotarł do kodu źródłowego czołowego laboratorium AI, wychodząc od błędu przesyłania zdjęć, który gdzie indziej w internecie był już dawno naprawiony.
Własne warunki programu OpenAI wykluczały testy przeciwko samemu Discourse, więc wypłata 6500 dolarów pokryła jedynie błąd granicy tożsamości, nie exploita, który wpuścił badaczy do środka. Ta luka między tym, co pokrywa program nagród, a tym, czego naprawdę potrzebuje atakujący, zasługuje na osobny audyt, wspomagany modelem lub nie.
Czytaj dalej: Twój model zagrożenia NIS2 założył złego napastnika | Najlepsze narzędzia hakerskie oparte na AI są teraz dostępne wyłącznie na zaproszenie



