Dvě škodlivé verze knihovny LiteLLM zůstaly v březnu na PyPI zhruba 40 minut a nesly kód pro krádež přihlašovacích údajů schopný sklízet cloudové klíče, SSH klíče, tokeny Kubernetes, hesla k databázím a další tajemství ze systémů, které je nainstalovaly. Firma zaměřená na hrozbovou inteligenci CloudSEK nyní tvrdí, že získaný datový soubor, sestavený z přibližně 434 000 souborů, které útočníci zachytili, mapuje potenciální expozici na více než 2 500 organizací.
Tato čísla nejsou počtem obětí. CloudSEK sdělil The Hacker News, že materiál pochází z důvěrných zpravodajských zdrojů a skládá se ze zachycené kořisti a logů, které firma vyhodnotila jako součást kampaně — nejde tedy o data získaná od jmenovaných organizací, nýbrž o data odcizená. Soubor CloudSEK zveřejnil jako veřejné vyhledávání, prohledatelné podle jména či domény a filtrovatelné podle míry jistoty. Každý řádek uvádí název a doménu organizace, počet exponovaných tajemství, počet běhů a štítek „High“ nebo „Medium“. Mezi záznamy figurují NVIDIA, Cisco, Deloitte, Volkswagen, FedEx, Siemens a X Corp, přičemž nic z toho neprokazuje, že odcizené přihlašovací údaje byly použity — proto CloudSEK i LiteLLM vyzývají dotčené strany, aby údaje rotovaly, místo aby čekaly na důkaz.
Anatomie kompromitace
LiteLLM je open-source AI brána sloužící k propojení aplikací s více poskytovateli modelů. Projekt označil verze 1.82.7 a 1.82.8 za kompromitované a uvedl, že byly živé 24. března od 10:39 UTC po dobu asi 40 minut, než je PyPI dalo do karantény, ačkoli uživatele vyzývá, aby jakoukoli instalaci toho dne až do 16:00 UTC považovali za podezřelou. The Hacker News prostřednictvím PyPI 12. srpna potvrdil, že ani jedna z verzí se v historii vydání balíčku neobjevuje, zatímco 1.82.6 a 1.83.0 zůstávají dostupné.
Verze 1.82.8 obsahovala soubor litellm_init.pth, který Python zpracovává při spuštění interpretu, takže se spustil při každém startu procesu Pythonu v daném prostředí bez ohledu na to, zda něco importovalo LiteLLM. Kompromitované balíčky byly navrženy tak, aby shromáždily proměnné prostředí, SSH klíče, cloudové přihlašovací údaje, tokeny Kubernetes a databázová hesla, poté je zašifrovaly a odeslaly na doménu models.litellm[.]cloud ovládanou útočníkem, která s projektem nesouvisí. Analýza kampaně od Unit 42 zaznamenává, že payload četl proměnné prostředí obsahující klíče API k modelům, včetně OPENAI_API_KEY a ANTHROPIC_API_KEY.
Toto chování obrací obvyklou otázku pro třídění incidentů. Méně záleží na tom, zda tým LiteLLM vědomě používá, a více na tom, zda ho na hostiteli cokoli nainstalovalo.
Incident LiteLLM je součástí širší dodavatelsko-řetězcové kampaně TeamPCP spojené se skenerem Trivy od Aqua Security. Google sleduje TeamPCP pod označením UNC6780. Aqua uvedla, že útočníci si udrželi přístup po neúplné rotaci přihlašovacích údajů a 19. března vynuceně nahráli škodlivé commity do 76 ze 77 verzních značek trivy-action a všech sedmi značek setup-trivy, přičemž zveřejnili škodlivé vydání Trivy 0.69.4. Ekosystémová kompromitace je sledována jako CVE-2026-33634 a byla 26. března přidána do katalogu známých zneužívaných zranitelností CISA.
Přesný způsob, jakým se škodlivé verze LiteLLM dostaly na PyPI, se ve zveřejněných zprávách rozcházel. Na dotaz ohledně nesrovnalosti CloudSEK oponoval: „Jde o různé fáze téhož řetězce útoku, nikoli o konkurenční vysvětlení,“ sdělila firma. Její důkazy pokrývají, jak byl přihlašovací údaj získán, zatímco zjištění LiteLLM a Unit 42 popisují, jak byl následně použit. Downstream dopad kampaně je potvrzený, i když čísla o jejím rozsahu nikoli: Checkmarx uvedl, že přihlašovací údaje získané útokem na Trivy umožnily neoprávněný přístup k jeho repozitářům GitHub, a CERT-EU s vysokou jistotou vyhodnotil, že přes tento útok byl kompromitován účet AWS Evropské komise, z něhož bylo exfiltrováno asi 91,7 GB komprimovaných dat.
Zdroj: thehackernews.com


