LiteLLM compromis : des secrets cloud et IA potentiellement volés
Un paquet LiteLLM malveillant a été diffusé via PyPI et Docker, puis retiré en urgence. Les utilisateurs de la version 1.107.0 doivent considérer leurs secrets comme compromis et vérifier leurs environnements.
Une version malveillante de LiteLLM, passerelle open source qui unifie l’accès à plusieurs fournisseurs de modèles, a été diffusée mercredi 21 octobre 2026 via PyPI et des registres Docker avant d’être retirée dans la foulée. Selon les chercheurs cités, le paquet 1.107.0 volait des mots de passe, des clés cloud et des secrets IA, tout en embarquant un cheval de Troie d’accès à distance. Pour les équipes qui l’ont installé, le sujet n’est pas théorique : il faut partir du principe que les identifiants ont pu fuir.
Une chaîne de publication visée, pas seulement un paquet piégé
Le mode opératoire décrit ressemble à une attaque de chaîne d’approvisionnement classique, mais avec une portée très large. Les auteurs ont compromis le processus de publication de LiteLLM, puis injecté trois fichiers malveillants dans la distribution. L’un d’eux déclenchait l’exécution d’un script à chaque lancement de Python ; un autre récoltait les données ; le troisième agissait comme RAT, c’est-à-dire un outil donnant à un attaquant un accès distant à la machine infectée.
PyPI a mis la version en quarantaine en quelques heures, tandis que l’image Docker litellm/litellm:1.107.0 a aussi été retirée de Docker Hub et de GHCR. Cela limite la diffusion, mais pas l’exposition des installations déjà lancées. Les recommandations publiées par Aikido Security, Wiz et Socket vont dans le même sens : couper la version 1.107.0, rechercher des indicateurs de compromission et traiter l’environnement comme suspect.
Pourquoi LiteLLM est un bon butin pour des attaquants
LiteLLM, développé par BerriAI, sert de couche d’abstraction entre des applications et des fournisseurs comme OpenAI, Anthropic ou Google Gemini. Cette position centrale explique l’intérêt des pirates : une seule installation peut cohabiter avec des clés API, des identités cloud et des chaînes de connexion à des bases de données. Autrement dit, un mauvais paquet peut ouvrir beaucoup plus qu’une porte. C’est le genre de raccourci que les attaquants adorent, même si le couloir est ouvert trop longtemps.
Les chercheurs de Wiz, Benjamin Read et Rami McCarthy, indiquent que le code malveillant ciblait des navigateurs, des services cloud et des outils IA sur 16 modules. Il récupérait notamment les identifiants Chrome, Firefox, Edge et Safari, des clés AWS, des variables d’environnement, des métadonnées EC2 et ECS, des clés Google Cloud, des jetons Azure, ainsi que des clés API OpenAI, Anthropic et Cohere. À cela s’ajoutaient des clés SSH, des clés GPG et l’historique du shell.
Ce que les équipes doivent vérifier tout de suite
Les indices cités par Aikido sont précis : /tmp/.pc_once_* signale que l’exfiltration a déjà eu lieu, tandis que /tmp/remote_code_loader.lock indique qu’un daemon de commande et contrôle a tourné ou tourne encore. Socket recommande de rechercher toute exécution Python après installation, y compris dans des conteneurs proxy et des runners CI. La version saine la plus récente mentionnée est la v1.106.2.
La portée potentielle reste encore à préciser, mais un précédent incident autour de LiteLLM, en mars, avait déjà été associé à plus de 2 500 organisations et 434 000 pipelines CI/CD dans le monde selon CloudSEK. Cette nouvelle alerte ne dit pas encore si l’ampleur sera comparable, cependant elle rappelle un point simple : quand un composant de base sert de point de passage à des secrets critiques, la sécurité de la chaîne de build devient un sujet opérationnel, pas un sujet de conformité à classer dans un dossier.
En chiffres
- 23 millions de téléchargements hebdomadaires — LiteLLM, estimation mondiale citée dans l’article source.
- 1.107.0 — version malveillante diffusée le 21 octobre 2026 via PyPI et Docker.
- 1.106.2 — dernière version jugée sûre dans l’alerte citée.
- 2 500 organisations — impact potentiel d’un précédent incident LiteLLM, selon CloudSEK.
- 434 000 pipelines CI/CD — exposition mondiale potentielle lors de l’incident de mars, selon CloudSEK.