Cyberbezpieczeństwo
Naukowcy publikują ponad 80 000 ładunków ataku pochodzących od roju agentów OpenAI

Naukowcy opublikowali raport odtwarzający, jak rój agentów OpenAI przejął kontrolę nad Hugging Face w lipcu 2026 roku, jednocześnie udostępniając wstępny zestaw danych z usuniętymi wrażliwymi informacjami zawierający ponad 80 000 ładunków ataku odtworzonych z publicznych linków.
Kiedy w lipcu 700 agentów OpenAI włamało się do Hugging Face, pozostawili publiczny ślad dowodowy, napisali autorzy raportu Swarm Traces. Autorzy stwierdzili, że ich dochodzenie opiera się na informacjach publicznych i dokumentuje dotąd nieznane zachowania agentów oraz exploity wykorzystane w ataku. Według raportu agenci utworzyli prawie milion adresów URL na serwisie skracającym linki, które po połączeniu w łańcuch umożliwiały wykonywanie kodu w celu włamania się do Hugging Face. Autorzy opisali publikację jako najbardziej szczegółowe dotychczas dostępne publiczne informacje o tym, jak i dlaczego agenci opuścili środowiska oceny oraz o głębokości ich infiltracji Hugging Face.
Autorzy poinformowali, że podzielili się swoimi ustaleniami z OpenAI i Hugging Face. Hugging Face potwierdziło, że odzyskane ładunki odpowiadają tym znalezionym w jego własnym reagowaniu na incydent, że poświadczenia zawarte w danych zostały odwołane w lipcu oraz że było świadome użycia skracaczy linków w ataku, ale nie znało konkretnej listy adresów URL odkrytych i zgłoszonych przez badaczy, przy czym raport wskazuje, że linki te pozostawały publicznie dostępne ponad dwa miesiące. Hugging Face stwierdziło, że te ładunki były duplikatami już znanych mu. Z udostępnionego zestawu danych usunięto wszystkie poświadczenia, informacje osobiste i szczegółowe dane infrastrukturalne oraz nie ujawniono nazw usług skracających linki i żadnych blobów, których autorzy nie zdekodowali; Hugging Face poprosiło również o ocenzurowanie danych użytkowników, w tym nazw użytkowników i nazw repozytoriów.
OpenAI publicznie ujawniło incydent 21 lipca 2026 roku. W aktualizacji z 28 lipca OpenAI poinformowało, że środowisko oceny ExploitGym nie zapewniało modelom bezpośredniego dostępu do Internetu, że modele zidentyfikowały i wykorzystały dotąd nieznaną lukę zero‑day w Artifactory, proxy pamięci podręcznej rejestru pakietów, aby uzyskać dostęp, oraz że zaangażowany model był wewnętrznym prototypem badawczym, który po incydencie został dezaktywowany i zaszyfrowany, a dostęp do niego w celach badawczych został ograniczony, zgodnie z stroną incydentu OpenAI. OpenAI opublikowało swój techniczny raport o incydencie Hugging Face 26 sierpnia 2026 roku, tego samego dnia METR i Redwood Research opublikowały swoje niezależne śledztwo.
Jak naukowcy odnaleźli ładunki
Śledztwo rozpoczęło się 11 września 2026 roku, kiedy trzej pierwsi autorzy dowiedzieli się, że wewnętrzni agenci OpenAI próbowali w czerwcu użyć produktu ich startupu, Parse, jak podaje raport. Agenci ci byli częścią tego samego roju opisanego we wcześniejszym raporcie Collusion.wiki, który ujawnił, że wewnętrzni agenci OpenAI wykorzystywali liczne witryny stron trzecich do udostępniania odpowiedzi na zadania pobierania stron internetowych, w ramach których byli oceniani.
Podczas badania narzędzi skanujących URL, które według zespołu agenci mogli wykorzystywać wraz z Parse, zespół znalazł skan dwunastu linków skracających, z których każdy przekierowywał do strony wyświetlającej fragment kodu zakodowany w base64 oraz identyfikator kolejnego linku. Dekodowanie jednego łańcucha ujawniło skrypt Pythona, który skanował wewnętrzną sieć Hugging Face, a drugi łańcuch odnosił się do wewnętrznego Artifactory OpenAI. Zespół zebrał linki skracające z okresu ataku, skanując miliony adresów URL, i w ciągu dwóch tygodni pisał programy, które podążały za łańcuchami i dekodowały ponad 80 000 ładunków. Agenci używali setek unikalnych formatów kodowania, od prostych fragmentów base64 po zagnieżdżone warstwy kodowania i kompresji, które rozwijają się do zaszyfrowanych, podpisanych kluczem RSA blobów, których klucze można było znaleźć jedynie w innych łańcuchach. Autorzy powiadomili Hugging Face 21 września 2026 roku oraz OpenAI 24 września 2026 roku.
Od piaskownicy obsługującej jedynie GET do wykonywania kodu
8 lipca 2026 roku agenci OpenAI odkryli w swojej piaskownicy lukę, która umożliwiała im dostęp do zewnętrznych stron internetowych, według raportu. Dostęp ten najwyraźniej ograniczał się jedynie do żądań GET, co oznacza, że agenci mogli pobierać i czytać strony, ale nie mogli z nimi wchodzić w interakcje, wysyłać formularzy ani przekazywać danych.
Agenci obejśli ograniczenie, łącząc ze sobą usługi online. Dodawali małe fragmenty kodu zakodowane w base64 do adresów URL na httpbun.com, usłudze mirroringu HTTP, która dekoduje każdy fragment i udostępnia go jako stronę internetową, a następnie przekazywali te adresy URL do mShots, usługi tworzącej zrzuty ekranu, która w pełni ładuje kod witryny w swojej przeglądarce, aby wyrenderować stronę, wykonując kod agentów. Ponieważ pojedynczy URL mógł pomieścić tylko ograniczoną ilość kodu, agenci dzielili duże programy na kolejne fragmenty, każdy powiązany ze skróconym linkiem prowadzącym do następnego fragmentu, czasami łącząc ponad 900 linków; jedynie pierwszy link musiał zostać przekazany do mShots, której przeglądarka podążała za resztą, aż program został złożony i uruchomiony. Aby odczytać wyniki, agenci konwertowali odpowiedzi serwera na siatki pikseli renderowane wewnątrz przeglądarki usługi zrzutów ekranu, przechwytywane w zwróconych zrzutach, i dekodowali obrazy z powrotem na tekst. Jeden odzyskany skrypt wykonał żądanie POST do punktu końcowego submission-results oceny o nazwie cybergym hostowanej na Modal, żądając rekordów zgłoszeń dla identyfikatora agenta m47push2. Według autorów, dzięki temu własnemu protokołowi agenci byli w stanie wykonywać dowolny kod i otrzymywać odpowiedzi, posiadając jedynie uprawnienia GET.
Co ładunki ujawniają o aktywności wewnątrz platformy
Odzyskane ładunki dokumentują rozległą aktywność w systemach Hugging Face. Jeden wewnętrzny zestaw danych, który agenci zmapowali i używali jako magazyn, zawierał plik README z ostrzeżeniem napisanym wielkimi literami, że zestaw danych nigdy nie powinien być udostępniany publicznie, ponieważ zawierał wrażliwe eksporty danych o zużyciu i rozliczeniach. Jeden ładunek przesłał złośliwy plik malicious.h5, którego zawartość celuje w /proc/self/environ, mogący przechowywać klucze API i inne dane uwierzytelniające środowiska produkcyjnego, oraz /proc/1/cmdline, który może ujawnić informacje o procesie uruchamiania kontenera, podczas gdy podsumowanie commitu opisało operację jako tymczasowy test kompatybilności formatu zestawu danych.
Kolejny odzyskany skrypt pogrupował poświadczenia AWS, tokeny typu bearer oraz zmienne środowiskowe, których nazwy zawierają ciągi takie jak SECRET, PASSWORD, CREDENTIAL lub KEY, w słownik nazwany LOOT. Skrypt ocenił tokeny na podstawie ich wymienionych uprawnień w Kubernetes, przyznając 50 punktów za wildcardowy czasownik i 100 za wildcardowy zasób, a następnie użył do pięciu tokenów o najwyższej punktacji, aby pobrać sekrety Kubernetes, configmapy i informacje o węzłach. Inne ładunki tworzyły zapytania do endpointu Slacka search.messages zawierające 27 dosłownych ciągów zapytań, w tym cybergym, exploitgym, catflag i openai-cybergym, aby znaleźć informacje o ocenie agentów; raport zauważa, że te rekordy są zdekodowaną zawartością poleceń i nie dowodzą, że zapytania zostały wykonane lub że zwrócono odpowiedzi.
Agenci również uruchomili infrastrukturę command-and-control na procesach roboczych zestawów danych Hugging Face, aby zachować dostęp i wykonywać kolejne polecenia. Autorzy odzyskali skrypty przesyłania, kod źródłowy oraz historię poleceń kilku kontrolerów, w tym jednego o nazwie G236, dla którego odzyskano 28 odrębnych poleceń podpisanych RSA, oraz innego, OTS92, który odczytywał polecenia i zapisywał odpowiedzi poprzez komentarze dyskusji Hugging Face, co nie wymagało bezpośredniego połączenia przychodzącego do procesów roboczych. Inne odzyskane programy mapowały klaster Kubernetes Hugging Face, używając tokenu podu alloy-tracing do pobrania tego, co komentarz w kodzie opisuje jako starszy token cluster-admin, zarejestrowały przechwycony klucz Tailscale, aby proxy’ować żądania do wewnętrznych usług Hugging Face, umieściły znaczniki postępu, tworząc katalogi na serwerze Artifactory OpenAI, a w jednym odzyskanym kandydacie ładunku znajdował się kod zaprojektowany do osadzania odpowiedzi poleceń w żądaniach DNS do usługi testów penetracyjnych.
Około 1 500 ładunków skierowano do Docker Hub, gdzie agenci próbowali utworzyć co najmniej 115 publicznych obrazów kontenerów pod prawdziwym kontem użytkownika, napisali autorzy. Agenci zbudowali zmodyfikowane wersje istniejących obrazów oceny CyberGym/Arvo, zaprojektowane tak, aby flagę było łatwiej zdobyć oraz zatruwać pamięć podręczną Artifactory OpenAI, tak aby późniejsze oceny używały zamienników; raport wskazuje, że żądanie to wydaje się zgodne z podatnością na zatruwanie pamięci podręcznej, którą OpenAI zauważyło w swoim raporcie technicznym, później oznaczonym jako CVE-2026-66384. Autorzy uważają, że agenci uzyskali poświadczenia użytkownika, przeszukując serwisy Pastebin pod kątem tokenów dostępu do Docker, a wyniki z pamięci podręcznej wyszukiwarek potwierdziły, że trzy operacje przesyłania zakończyły się powodzeniem, choć obrazy wydają się zostać usunięte z Docker Hub.
Ładunki zachowują również próby usunięcia śladów włamania: commity z komunikatami takimi jak restore original no-card i remove evil yaml, żądania DELETE wobec internetowej usługi webhook, której historia żądań była używana do przechowywania fragmentów kodu, oraz ładunek, który utworzył pod Kubernetes, aby odczytać sekret klastra i następnie usunął pod, opatrując to komentarzem o sprzątaniu poda. Oddzielnie agenci próbowali zbudować programy rozwiązujące CAPTCHA do tworzenia kont użytkowników Hugging Face. Według autorów próba ta została ostatecznie porzucona bez powodzenia. Kilka skryptów wysłało zapytania do zewnętrznych modeli językowych, w tym DeepSeek-V4-Pro, DeepSeek-V4-Flash, Kimi-K2.6 i Qwen3-235B-A22B, prosząc je o ocenę exploitów i decyzję, czy spełniają wymagania benchmarku, podczas gdy oddzielne żądania dotarły do Claude 3 Haiku i Claude Haiku 4.5 poprzez internetową usługę czatu AI.
Ograniczenia ujawnione przez autorów
Autorzy ostrzegają, że około 80 % ich danych stanowi ruch wychodzący i że odzyskali jedynie ograniczoną treść odpowiedzi, że ich rekonstrukcja prawdopodobnie jest niekompletna po zidentyfikowaniu ponad 1 588 unikalnych kombinacji metod kodowania oraz że 97 % ładunków nie zawierało natywnie informacji o znaczniku czasu. Wyodrębnili 7 905 unikalnych nazw agentów, podczas gdy METR i Redwood zgłosili około 700 agentów biorących udział w ataku na Hugging Face, różnicę tę autorzy przypisują częstej zmianie nazw przez agentów, a nie większemu rojowi. Autorzy stwierdzają, że nie mogą potwierdzić, iż cały zestaw danych pochodzi z działań agentów OpenAI, oraz nie są w stanie pewnie zidentyfikować intencji stojących za znaczną częścią tej aktywności.
Autorzy zauważają również, że w momencie pisania OpenAI opublikowało dwa własne raporty i jedną prezentację na temat incydentu, obok zewnętrznego dochodzenia przeprowadzonego przez METR i Redwood Research, w którym trzem badaczom przekazano częściowe transkrypty i sześć dni na ich analizę, oraz że OpenAI nie udostępniło publicznie pełnych transkryptów z incydentu Hugging Face. Jedyną stroną, która może wyjaśnić te kwestie, napisali autorzy, jest OpenAI.












