Udviklerne af Python-biblioteket LiteLLM, som har 95 millioner downloads om måneden og 3,5 millioner de seneste 24 timer, har meddelt om et kompromitteret projekt. Angrebene formåede at opfange adgangsoplysningerne fra vedligeholderen og offentliggjorde to ondsindede versioner på PyPI — 1.82.7 og 1.82.8, der indeholder kode til at stjæle nøgler og adgangskoder fra brugernes systemer. I øjeblikket er de ondsindede versioner fjernet fra PyPI, og projektet er midlertidigt suspenderet, indtil undersøgelsen er afsluttet.
Adgangstoken til LiteLLM-kontoen på PyPI kom i hænderne på angrebene på grund af brugen af en sikkerhedsscanner til afhængigheder, trivvy, i integrationssystemet. Tidligere, i slutningen af februar, formåede angrebene at få adgang til Trivy-projektets infrastruktur ved at udnytte en sårbarhed i pull_request_target-behandleren, der kører i Trivy's integrationssystem. Efter kompromitteringen offentliggjorde angrebene ondsindede udgivelser af Trivy 0.69-0.69, ændrede GitHub Action-behandleren trivy-action og indsendte et ændret Docker-billede med Trivy.
Den 24. marts kl. 11:30 (MSK) blev de opfangne adgangsoplysninger fra LiteLLM's vedligeholder (krrishdholakia) brugt til direkte at offentliggøre ondsindede versioner af LiteLLM 1.82.7 og 1.82.8 på PyPI, uden om det officielle GitHub CI/CD. Projektets repository på GitHub blev ikke ramt — den ondsindede aktivitet blev kun observeret på PyPI. I versionen LiteLLM 1.82.7 blev den ondsindede kode indlejret i filen litellm/proxy/proxy_server.py og aktiveret ved import af litellm.proxy. I version 1.82.8 blev filen site-packages/litellm_init.pth inkluderet, og der blev tilføjet en behandler til proxy_server.py, pakket i base64-format og aktiveret ved enhver kørsel.
Den tilføjede ondsindede kode udførte scanning og sending af følsomme data. Der blev sendt nøgler til SSH og SSL/TLS, indholdet af miljøvariabler, adgangsoplysninger til AWS, GCP, Azure og K8s, nøgler til kryptovaluta-tegnebøger, adgangskoder til databaser, historik over kommandoer i kommandotolk, konfigurationsfiler fra Git, CI/CD, pakkeadministratorer og Docker. De opdagede data blev krypteret med AES-256-CBC + RSA-4096-algoritmer og sendt via en HTTP POST-anmodning til hjemmesiden "https://models.litellm.cloud/" (domæne litellm.cloud blev registreret få timer før offentliggørelsen af de ondsindede versioner).
LiteLLM-brugere anbefales at sikre sig, at der ikke findes en fil litellm_init.pth i kataloget site-packages, opdatere alle nøgler og legitimationsoplysninger i tilfælde af installation af version 1.82.7 eller 1.82.8, fastsætte specifikke versioner af LiteLLM i afhængighedens indlæsningsparametre og sammenligne de anvendte udgivelser af LiteLLM med koden for udgivelserne på GitHub.
Kilde: opennet.ru
