Vývojáři Python knihovny LiteLLM, která má 95 milionů stažení měsíčně a 3,5 milionu za posledních 24 hodin, oznámili kompromitaci projektu. Útočníci se po úspěšném přístupu zmocnili přihlašovacích údajů a publikovali v PyPI dvě škodlivé verze — 1.82.7 a 1.82.8, které obsahovaly kód pro krádež klíčů a hesel z uživatelských systémů. V současné době byly škodlivé verze odstraněny z PyPI a projekt je dočasně pozastaven do ukončení vyšetřování.
Token pro přístup k účtu LiteLLM v PyPI se dostal do rukou útočníků kvůli zneužití skeneru zabezpečení závislostí trivvy v systému kontinuální integrace. Dříve na konci února se útočníci dostali k infrastruktuře projektu Trivy, když využili zranitelnosti v handleru pull_request_target, který je spuštěn v systému kontinuální integrace Trivy. Po kompromitaci publikovali útočníci škodlivé verze Trivy 0.69-0.69, a podměnili GitHub Action handler trivy-action a umístili modifikovaný Docker image s Trivy.
24. března v 11:30 (MSK) byly zachycené přihlašovací údaje správce LiteLLM (krrishdholakia) použity pro přímé publikování škodlivých verzí LiteLLM 1.82.7 a 1.82.8 v PyPI, obcházející oficiální GitHub CI/CD. Repository projektu na GitHubu nebylo zasaženo — škodlivá činnost byla pozorována pouze v PyPI. V verzi LiteLLM 1.82.7 byl škodlivý kód zabudován do souboru litellm/proxy/proxy_server.py a aktivoval se při importu litellm.proxy. V verzi 1.82.8 byl zahrnut soubor site-packages/litellm_init.pth, a do souboru proxy_server.py byl přidán handler, zabalený v base64 a aktivovaný při jakémkoli spuštění.
Přidaný škodlivý kód prováděl skenování a odesílání citlivých dat. Odesílány byly nalezené klíče SSH a SSL/TLS, obsah proměnných prostředí, přihlašovací údaje k AWS, GCP, Azure a K8s, klíče od kryptoměnových peněženek, hesla k databázím, historie příkazového interpretru, konfigurační soubory od Gitu, CI/CD, správce balíčků a Dockeru. Získaná data byla šifrována pomocí algoritmů AES-256-CBC + RSA-4096 a odesílána HTTP POST požadavkem na web „https://models.litellm.cloud/“ (doména litellm.cloud byla registrována jen pár hodin před publikací škodlivých verzí).
Uživatelé LiteLLM by měli zkontrolovat, zda v adresáři site-packages neexistuje soubor litellm_init.pth, aktualizovat všechny klíče a přihlašovací údaje v případě instalace verze 1.82.7 nebo 1.82.8, zafixovat konkrétní verze LiteLLM v nastavení závislostí a porovnat používané verze LiteLLM s kódem verzí na GitHubu.
Zdroj: opennet.ru
