Die Entwickler der Python-Bibliothek LiteLLM, die monatlich 95 Millionen Downloads und in den letzten 24 Stunden 3,5 Millionen Downloads verzeichnete, haben von einer Kompromittierung des Projekts berichtet. Angreifer konnten die Anmeldedaten des Betreuers abfangen und zwei bösartige Releases - 1.82.7 und 1.82.8 - in PyPI veröffentlichen, die Code zum Stehlen von Schlüsseln und Passwörtern aus den Systemen der Benutzer enthielten. Die bösartigen Versionen sind inzwischen aus PyPI entfernt worden, und das Projekt ist vorübergehend eingestellt, bis die Angelegenheit geklärt ist.
Das Zugriffs-Tokens für das LiteLLM-Konto in PyPI gelangte durch die Verwendung eines Sicherheits-Scanners für Abhängigkeiten, trivvy, in die Hände der Angreifer. Zuvor konnten die Angreifer Ende Februar Zugriff auf die Infrastruktur des Projekts Trivy erlangen, indem sie eine Schwachstelle im Handler pull_request_target ausnutzten, der im Continuous Integration-System von Trivy ausgeführt wird. Nach der Kompromittierung veröffentlichten die Angreifer bösartige Releases von Trivy 0.69-0.69, ersetzten den GitHub Action Handler trivy-action und stellten ein modifiziertes Docker-Image mit Trivy zur Verfügung.
Am 24. März um 11:30 Uhr (MSK) wurden die abgefangenen Anmeldedaten des Betreuers LiteLLM (krrishdholakia) genutzt, um bösartige Releases von LiteLLM 1.82.7 und 1.82.8 direkt in PyPI zu veröffentlichen, um die offizielle GitHub CI/CD zu umgehen. Das Repository des Projekts auf GitHub blieb unversehrt - bösartige Aktivitäten wurden nur in PyPI beobachtet. Im Release von LiteLLM 1.82.7 war der bösartige Code in die Datei litellm/proxy/proxy_server.py integriert und wurde beim Import von litellm.proxy aktiviert. Im Release 1.82.8 wurde die Datei site-packages/litellm_init.pth hinzugefügt, und in die Datei proxy_server.py wurde ein Handler eingefügt, der im Base64-Format verpackt und bei jedem Start aktiviert wurde.
Der hinzugefügte bösartige Code führte Scans durch und übermittelte vertrauliche Daten. Gefundene SSH- und SSL/TLS-Schlüssel, Umgebungsvariablen, Anmeldedaten für AWS, GCP, Azure und K8s, Schlüssel von Kryptowallets, Passwörter für Datenbankmanagementsysteme, die Historie von Befehlen im Interpreter, Konfigurationsdateien von Git, CI/CD, Paketmanagern und Docker wurden gesendet. Die gefundenen Daten wurden mit den Algorithmen AES-256-CBC + RSA-4096 verschlüsselt und per HTTP POST-Anfrage an die Website "https://models.litellm.cloud/" gesendet.Domain haben litellm.cloud wurde einige Stunden vor der Veröffentlichung der bösartigen Releases registriert.
LiteLLM-Nutzern wird empfohlen, sicherzustellen, dass sich keine Datei litellm_init.pth im Katalog site-packages befindet, alle Schlüssel und Anmeldedaten zu aktualisieren, falls die Version 1.82.7 oder 1.82.8 installiert wird, bestimmte Versionen von LiteLLM in den Ladeparametern für Abhängigkeiten festzulegen und die verwendeten LiteLLM-Versionen mit dem Release-Code auf GitHub abzugleichen.
Quelle: opennet.ru
