W raporcie opublikowanym 23 października 2026 r. LiteLLM wskazał, że pierwszy token GitHub właściciela organizacji pozyskano przez Agent Platform po użyciu nieunieważnionego klucza głównego, który 27 maja trafił do publicznego repozytorium. Firma skorygowała w ten sposób wcześniejszą hipotezę o tokenie wykradzionym z logów. Łańcuch przejętych poświadczeń doprowadził do publikacji złośliwej wersji LiteLLM 1.107.0 21 października.

Jak ujawniony klucz doprowadził do przejęcia wydania

LiteLLM podał, że plik konfiguracyjny z kluczem głównym Agent Platform został opublikowany 27 maja 2026 r. w repozytorium LiteLLM-Labs/lite-harness, a klucza nie unieważniono. Według raportu firmy 10 października napastnik wykorzystał go, by uzyskać dostęp do Agent Platform i zdobyć token OAuth GitHub CLI należący do właściciela organizacji. Następnie użył workflow do pozyskania tokenów dwóch opiekunów projektu.

DataWydarzenie
27 maja 2026 r.W publicznym repozytorium znalazł się plik konfiguracyjny z kluczem głównym Agent Platform.
10 października 2026 r.Napastnik uzyskał przez Agent Platform token GitHub CLI właściciela organizacji, a później tokeny dwóch opiekunów projektu.
21 października 2026 r.Zmieniono workflow wydania i opublikowano złośliwą wersję 1.107.0.
23 października 2026 r.LiteLLM opublikował skorygowany opis łańcucha ataku.

W dniu publikacji wersji napastnik przekierował workflow do repozytorium Berri-AI/litellm, które naśladowało właściwe BerriAI/litellm. Złośliwe artefakty zbudowano z tego podobnie nazwanego repozytorium. LiteLLM wskazał oficjalne obrazy w Docker Hub i GHCR jako objęte incydentem, więc repozytorium źródłowe i nazwy obrazów w rejestrach to dwie różne części tej historii.

Które pakiety i tagi były objęte atakiem

LiteLLM wskazał siedem złośliwych plików wheel dla wersji litellm==1.107.0. Zostały opublikowane w PyPI między 11:39:51 a 11:40:13 UTC 21 października; PyPI usunęło pakiet do 13:23 UTC.

W Docker Hub i GHCR zagrożone były tagi v1.107.0, latest, main-latest i main-stable. Obrazy opublikowano o 11:46:56 UTC. LiteLLM podał, że dotknięte tagi GHCR były niedostępne do 13:51 UTC, a tagi Docker Hub usunięto lub przekierowano do czystych obrazów do 14:20 UTC tego samego dnia. Ponieważ na liście jest także zmienny tag latest, przy ocenie wdrożenia istotne jest, czy obraz został pobrany lub uruchomiony w tym oknie, a nie tylko to, jaka nazwa tagu widnieje obecnie.

LiteLLM poinformował, że incydent nie objął klientów korzystających z prywatnego rejestru enterprise. Użytkownikom wersji open source firma zaleciła przypięcie 1.106.2 albo innego jawnie wskazanego wydania opublikowanego przed atakiem.

Co robił złośliwy pakiet i co zaobserwowano w AWS

Analiza Wiz wskazała, że pakiet umieszczał w katalogu Pythona site-packages pliki cook.pth, cook.py i sitecustomize.py. Te mechanizmy startowe miały uruchamiać kod przy uruchomieniu Pythona. Wiz opisał kradzież danych logowania z przeglądarek, poświadczeń chmurowych i kluczy do usług AI, kluczy SSH i GPG, historii powłoki oraz danych dostępowych zapisanych w bazie LiteLLM Proxy. Zdalny moduł ładujący był przeznaczony dla Linuksa i macOS.

Wiz oszacował na podstawie danych ClickPy, że wersję 1.107.0 pobrano około 49 000 razy. To szacunek pobrań, nie liczba potwierdzonych zainfekowanych komputerów ani organizacji.

Między 16:20 a 17:01 UTC 21 października Wiz zaobserwował sprawdzanie poświadczeń ról AWS, w tym wywołania sts:GetCallerIdentity, oraz zapytania o listę modeli Amazon Bedrock. Są to kontrole tożsamości i zapytania o katalog modeli; same nie wskazują, że napastnik uruchomił płatne modele.