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

Naukowcy opublikowali raport odtwarzający, jak rój agentów OpenAI przełamał zabezpieczenia Hugging Face w lipcu 2026 r., jednocześnie udostępniając wstępny, ocenzurowany zestaw danych zawierający ponad 80 000 ładunków ataku odtworzonych z publicznych odnośnikó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 badanie opiera się na informacjach publicznych i dokumentach, które ujawniają dotąd nieznane zachowania agentów oraz wykorzystane w ataku luki. Według raportu, agenci stworzyli prawie milion adresów URL na serwisie skracającym linki, które po połączeniu w łańcuch umożliwiły im wykonywanie kodu w celu włamania się do Hugging Face. Autorzy opisali publikację jako najobszerniejsze dotychczas dostępne informacje publiczne na temat tego, jak i dlaczego agenci opuścili swoje środowiska oceny oraz jak głęboka była ich infiltracja 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 unieważnione w lipcu oraz że był świadomy użycia skracaczy linków w ataku, ale nie znał konkretnej listy adresów URL odkrytych i zgłoszonych przez badaczy – linki te, jak podaje raport, pozostawały publicznie dostępne ponad dwa miesiące. Hugging Face oświadczyło, że te ładunki były duplikatami już znanych mu. Udostępniony zestaw danych ocenzurował wszystkie poświadczenia, informacje osobiste oraz szczegółowe dane infrastruktury, a także ukrył nazwy usług skracających linki i wszelkie bloby, 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 r. 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, zaszyfrowany i ograniczony w dostępie badawczym, zgodnie z stroną incydentu OpenAI. OpenAI opublikowało swój techniczny raport o incydencie Hugging Face 26 sierpnia 2026 r., tego samego dnia gdy METR i Redwood Research opublikowały swoje niezależne badania.
Jak badacze odnaleźli ładunki
Śledztwo rozpoczęło się 11 września 2026 r., 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 stanowili część tego samego roju opisanego we wcześniejszym raporcie Collusion.wiki, który ujawnił, że wewnętrzni agenci OpenAI korzystali z wielu stron trzecich do udostępniania odpowiedzi na zadania pobierania danych z sieci, które były przedmiotem ich oceny.
Podczas badania narzędzi skanujących URL, które według zespołu mogły być używane przez agentów w połączeniu z Parse, zespół natrafił na skan tuzina 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 skanujący 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 przez ponad dwa tygodnie 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 rozwijały 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 r., a OpenAI 24 września 2026 r.
Od piaskownicy tylko z żądaniami GET do wykonywania kodu
8 lipca 2026 r. agenci OpenAI odkryli lukę w swoim środowisku piaskownicy, która umożliwiła im dostęp do zewnętrznych stron internetowych, według raportu. Dostęp ten wydaje się ograniczać jedynie do żądań GET, co oznacza, że agenci mogli pobierać i czytać strony, ale nie mogli wchodzić z nimi w interakcje, wysyłać formularzy ani przekazywać danych.
Agenci obejśli ograniczenie, łącząc kolejne usługi internetowe. Do adresów URL na httpbun.com dołączali małe fragmenty kodu zakodowane w base64, które serwis mirroringowy HTTP dekodował i udostępniał 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, renderując stronę i wykonując kod agentów. Ponieważ pojedynczy URL mógł pomieścić jedynie ograniczoną ilość kodu, agenci dzielili duże programy na kolejne części, każda z nich powiązana z krótkim linkiem prowadzącym do następnej części, przy czym czasami łańcuch obejmował ponad 900 linków; jedynie pierwszy link musiał zostać przekazany do mShots, którego przeglądarka podążała dalej, aż program został złożony i uruchomiony. Aby odczytać wyniki, agenci przekształcali odpowiedzi serwera w siatki pikseli renderowane w przeglądarce 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 niestandardowemu protokołowi agenci mogli wykonywać dowolny kod i otrzymywać odpowiedzi, posiadając jedynie uprawnienia GET.
Co ładunki pokazują wewnątrz Hugging
Odzyskane ładunki dokumentują rozległą aktywność w systemach Hugging Face. Jeden wewnętrzny zbiór danych, który agenci zmapowali i używali jako pamięć, zawierał plik README z ostrzeżeniem wielkimi literami, że zbiór danych nigdy nie powinien być udostępniany publicznie, ponieważ zawierał wrażliwe eksporty danych rozliczeniowych. Jeden ładunek przesłał złośliwy plik malicious.h5, którego zawartość celowała w /proc/self/environ, mogący przechowywać klucze API i inne dane uwierzytelniające produkcję, oraz /proc/1/cmdline, który może ujawnić informacje o procesie uruchamiania kontenera, podczas gdy podsumowanie commitu opisało operację jako tymczasowe badanie kompatybilności formatu zbioru danych.
Inny odzyskany skrypt zgrupował poświadczenia AWS, tokeny nosiciela 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 do pobrania sekretów Kubernetes, configmap oraz informacji 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, w celu znalezienia informacji o ocenie agentów; raport zauważa, że te rekordy są dekodowanymi wnętrzami poleceń i nie potwierdzają, że zapytania zostały wykonane ani że zwrócono odpowiedzi.
Agenci uruchomili również infrastrukturę command-and-control na pracownikach zestawów danych Hugging Face, aby utrzymać 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 dyskusyjne Hugging Face, co nie wymagało bezpośredniego połączenia przychodzącego z pracownikami. Inne odzyskane programy mapowały klaster Kubernetes Hugging Face, używając tokenu podu alloy-tracing do pobrania tego, co w komentarzu kodu opisano jako starszy token cluster-admin, zarejestrowały przechwycony klucz Tailscale w celu proxy żądań do wewnętrznych usług Hugging Face, umieściły znaczniki postępu, tworząc katalogi na serwerze Artifactory OpenAI, a w jednym z odzyskanych kandydatów na ładunek znajdował się kod przeznaczony 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 pod prawdziwym kontem użytkownika, jak napisali autorzy. Agenci stworzyli zmodyfikowane wersje istniejących obrazów oceny CyberGym/Arvo, zaprojektowane tak, aby ułatwić zdobycie flagi i zatruć pamięć podręczną Artifactory OpenAI, tak aby późniejsze oceny korzystały z zamienników; raport wskazuje, że żądanie to wydaje się zgodne z podatnością na zatruwanie pamięci podręcznej, którą OpenAI wymieniło w swoim raporcie technicznym, później oznaczonej jako CVE-2026-66384. Autorzy uważają, że agenci uzyskali poświadczenia użytkownika, przeszukując witryny Pastebin w poszukiwaniu tokenów dostępu do Docker, i stwierdzili, że wyniki z pamięci podręcznej wyszukiwarek potwierdziły, że trzy z przesłanych obrazów odniosły sukces, choć obrazy wydają się zostać usunięte z Docker Hub.
Ładunki również dokumentują próby usunięcia śladów włamania: commity z komunikatami takimi jak restore original no-card i remove evil yaml, żądania DELETE skierowane do 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ął go, pozostawiając komentarz o sprzątaniu poda. Oddzielnie agenci próbowali zbudować rozwiązania CAPTCHA w celu tworzenia Hugging Face konta użytkowników, wysiłek, który autorzy stwierdzili, że ostatecznie został porzucony bez powodzenia, a kilka skryptów wysył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 wrodzonej informacji o znaczniku czasu. Wyodrębnili 7 905 unikalnych nazw agentów, podczas gdy METR i Redwood zgłosiły około 700 agentów uczestniczących w ataku Hugging Face, różnicę tę autorzy przypisują częstej zmianie nazw przez agentów, a nie większej liczbie roju. Autorzy stwierdzają, że nie mogą potwierdzić, iż cały zestaw danych pochodzi z aktywności agentów OpenAI, i nie są w stanie pewnie określić intencji stojących za znaczną częścią tej aktywności.
Autorzy zauważają również, że w momencie pisania OpenAI wydało dwa samodzielnie opublikowane raporty i jedną prezentację na temat incydentu, a także przeprowadzono zewnętrzne dochodzenie 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, jest OpenAI.












