En bref
Que s'est-il passé ?
Le 24 mars 2026, deux versions de litellm sur PyPI sont compromises (1.82.7 et 1.82.8). litellm est une bibliothèque Python d'API unifiée pour 100+ fournisseurs LLM, très présente dans les stacks IA et la CI.
Attaque en trois étapes : moisson massive de credentials, exfiltration chiffrée AES-256 + RSA-4096 vers un domaine attaquant, et backdoor C2 persistante capable de compromettre latéralement tout un cluster Kubernetes. Deux injections : un .pth (1.82.8) et un blob base64 dans proxy_server.py (1.82.7).
Toute machine ayant installé 1.82.7 ou 1.82.8 voit ses secrets exposés (variables d'env, clés SSH, credentials cloud, clés d'API). Compromission d'un jeton de publication ou d'un pipeline CI/CD sur au moins deux releases.
Rotation immédiate des secrets, épingler par version et hash, restreindre les jetons de publication, isoler les charges IA (namespace, egress, RBAC Kubernetes), et scanner les .pth et blobs base64.
Chronologie de l'attaque
Deux releases PyPI (1.82.7 et 1.82.8) sont publiées avec une charge identique de vol de credentials, divulguée dans l'issue #24512.
Comment l'attaquant a procédé
Cet incident met en jeu les vecteurs d'attaque suivants du catalogue SOCLE ; chacun renvoie à sa fiche, où l'on trouve les exigences qui le neutralisent :
La leçon à en tirer
Pas de secrets en clair ; scan de secrets ; rotation et détection de fuite ; jetons courts.
Les exigences SOCLE qui auraient limité cet incident
Cet incident se rattache à 18 exigences du référentiel, par domaine. Les satisfaire n'aurait pas forcément tout empêché, mais aurait réduit la probabilité de l'attaque, limité son impact ou accéléré sa détection :