LiteLLM 1.107.0 a été compromise sur PyPI le 21 octobre 2026 avec un credential stealer et un RAT ciblant les clés API cloud et IA. Mise à jour vers 1.107.1 et rotation des secrets urgentes.
En bref
- LiteLLM 1.107.0, bibliothèque Python utilisée par des centaines de milliers d'équipes IA, a été compromise sur PyPI le 21 octobre 2026 avec un credential stealer et un RAT persistant.
- Les développeurs ayant installé cette version exposent leurs clés API OpenAI, Anthropic, AWS, Azure, GCP, leurs tokens GitHub et leurs mots de passe navigateur.
- Mise à jour vers 1.107.1 ou supérieure immédiate obligatoire, suivie d'une rotation complète de tous les secrets sur les machines concernées.
Une bibliothèque IA centrale compromise à la source
LiteLLM est l'une des bibliothèques Python les plus adoptées dans l'écosystème des entreprises déployant des agents IA : elle offre une interface unifiée pour appeler plus de 100 LLMs différents — OpenAI, Anthropic Claude, Gemini, Mistral, Llama, Cohere — via une API standardisée. Sa fonction de proxy centralisé, utilisée pour consolider les accès aux API IA d'une organisation, la rend particulièrement critique du point de vue de la sécurité. C'est précisément cette popularité qui en fait une cible de choix pour les attaquants cherchant à compromettre la chaîne d'approvisionnement logicielle des équipes d'ingénierie IA.
Le 21 octobre 2026 à 11h39 UTC, une version malveillante de LiteLLM — la 1.107.0 — a été publiée sur PyPI, le dépôt officiel de packages Python. Les sept fichiers wheel (.whl) distribués pour cette version contenaient deux charges malveillantes distinctes : un infostealer ciblant les identifiants cloud et les clés API, ainsi qu'un loader de code à distance capable d'exécuter du code arbitraire toutes les heures. La version saine 1.107.1 n'a été publiée qu'après que PyPI eut mis 1.107.0 en quarantaine à 13h20 UTC — soit une fenêtre d'exposition de 1h41.
La technique d'infection est particulièrement sophistiquée et difficile à détecter après coup. Le malware exploite le mécanisme Python des fichiers .pth (path configuration files) : un fichier nommé cook.pth est installé dans le répertoire site-packages du système lors de l'installation du package. Ce fichier importe automatiquement cook.py à chaque démarrage de l'interpréteur Python. cook.py décode et exécute alors son code obfusqué, déclenchant la routine de vol d'identifiants. Cette persistance est insidieuse : l'exécution d'une commande Python quelconque — même sans rapport avec LiteLLM, même dans un autre projet — peut déclencher le payload malveillant une fois la bibliothèque installée.
L'infostealer cible un spectre remarquablement large d'informations sensibles. Selon les analyses publiées par StepSecurity, Wiz, OX Security et Endor Labs, il collecte les mots de passe enregistrés dans les navigateurs web (Chrome, Firefox, Edge, Brave), les clés SSH et les clés d'accès cloud (AWS Access Keys, GCP service account credentials, Azure client secrets), les tokens des outils de développement IA (GitHub Copilot, Cursor, Continue, Codeium), et surtout les clés de providers stockées dans la base de données du proxy LiteLLM. Pour une entreprise utilisant LiteLLM comme proxy centralisé, une compromission peut exposer l'intégralité des secrets d'infrastructure IA en une seule exfiltration.
Le loader distant contacte un serveur de commande et contrôle (C2) toutes les heures pour télécharger et exécuter du code arbitraire. Cette persistance horaire permet aux attaquants de mettre à jour la charge utile post-infection, de pivoter vers d'autres systèmes du réseau interne, ou d'installer des outils supplémentaires selon leurs objectifs. Cette architecture modulaire est caractéristique des opérations de compromission à grande échelle où les attaquants veulent maximiser la monétisation de chaque machine infectée.
La détection a été remarquablement rapide. La plateforme de sécurité AISLE a identifié le code malveillant dans les wheels seulement 3 minutes après la publication sur PyPI. StepSecurity a confirmé la compromission peu après, suivies par des analyses détaillées de Wiz, OX Security, Endor Labs et OpenSourceMalware. La fenêtre d'exposition d'1h41 a toutefois suffi pour que des installations automatisées (pipelines CI/CD, environnements avec mises à jour automatiques) récupèrent la version compromise en nombre indéterminé.
Ce n'est pas la première fois que LiteLLM est victime d'une attaque supply chain en 2026. En mars, les versions 1.82.7 et 1.82.8 avaient déjà été compromises sur PyPI avec des charges malveillantes similaires. Cette récidive en moins de huit mois soulève des questions importantes sur la sécurité des credentials PyPI du mainteneur principal et sur les mécanismes de vérification mis en place après le premier incident. La double compromission suggère soit une protection insuffisante du compte de publication, soit un accès persistant non révoqué lors du premier incident.
Les équipes DevSecOps doivent agir immédiatement sur plusieurs fronts. La première priorité est d'identifier les environnements exposés : rechercher litellm==1.107.0 dans tous les fichiers requirements.txt, pyproject.toml, Pipfile.lock et dans les images Docker. La mise à jour vers 1.107.1 ou supérieure est impérative. Les systèmes concernés doivent faire l'objet d'une rotation complète de tous les secrets : clés API OpenAI, Anthropic, Azure AI, AWS, GCP, tokens GitHub, ainsi que les mots de passe des bases de données configurées dans le proxy LiteLLM. La vérification des fichiers .pth dans les répertoires Python est recommandée pour détecter une persistance résiduelle, même après désinstallation.
Un vecteur d'attaque émergent ciblant l'infrastructure IA des entreprises
L'attaque contre LiteLLM illustre un vecteur d'attaque en rapide expansion : la compromission des bibliothèques servant de couche d'abstraction aux API des grands modèles de langage. LiteLLM est utilisé par des centaines de milliers d'équipes de développement, des startups construisant des agents IA jusqu'aux grandes entreprises déployant des proxies LLM centralisés. Une compromission réussie peut donner accès à des clés API représentant des dizaines de milliers d'euros de crédit cloud IA, ou permettre l'exfiltration de données sensibles traitées par les modèles dans des workflows métier critiques.
La technique du .pth file est un vecteur de persistance bien documenté dans la littérature sécurité Python mais rarement mis en avant dans les formations et les outils de détection. Contrairement à un script malveillant qui doit être explicitement exécuté, un .pth malveillant s'active automatiquement à chaque démarrage de l'interpréteur Python, y compris dans les environnements virtuels (venv, conda). Pour les entreprises utilisant Python dans leurs pipelines CI/CD, leurs scripts d'automatisation ou leurs serveurs de production, cette persistance peut survivre à une simple désinstallation du package malveillant si le nettoyage n'est pas exhaustif.
Le double incident de 2026 sur LiteLLM pointe vers un problème systémique dans l'écosystème PyPI. Malgré l'authentification à deux facteurs obligatoire pour les projets critiques, un attaquant disposant d'un accès aux credentials du mainteneur peut publier une version malveillante en quelques secondes. Des solutions comme les attestations Sigstore pour PyPI, les dépôts miroirs privés avec analyse automatique des packages (JFrog Artifactory, Nexus), et les firewalls de dépendances sont désormais indispensables dans toute posture DevSecOps moderne. AISLE a démontré qu'une détection en 3 minutes est possible — l'adoption de tels outils doit s'accélérer.
La réglementation européenne NIS2, en vigueur depuis octobre 2024, impose aux entités essentielles et importantes de maîtriser leurs risques liés à la chaîne d'approvisionnement logicielle. Une compromission via une dépendance PyPI non vérifiée peut constituer un incident de sécurité déclarable, avec des délais de notification stricts envers les autorités compétentes — 72h en France pour certaines catégories d'incidents notifiables à l'ANSSI. Les organisations utilisant LiteLLM dans des contextes critiques doivent documenter cet incident dans leur registre des incidents de sécurité et évaluer si les seuils de notification sont atteints.
Ce qu'il faut retenir
- Toute installation de LiteLLM 1.107.0 est compromise : mettre à jour vers 1.107.1+ immédiatement et effectuer une rotation complète de tous les secrets accessibles sur les machines concernées.
- La persistance via .pth file survit à la désinstallation du package : vérifier et nettoyer manuellement les répertoires site-packages Python.
- Les proxies LiteLLM centralisés exposent l'ensemble des clés API d'une organisation : la compromission d'un seul serveur proxy peut affecter tous les projets utilisant l'infrastructure IA partagée.
Comment savoir si mon environnement Python est infecté par LiteLLM 1.107.0 ?
Exécutez pip show litellm pour vérifier la version installée. Si elle indique 1.107.0, mettez à jour immédiatement avec pip install --upgrade litellm. Vérifiez ensuite la présence de fichiers suspects dans votre répertoire site-packages avec la commande : find $(python -c "import site; print(site.getsitepackages()[0])") -name "cook.pth" -o -name "cook.py". Si ces fichiers existent, supprimez-les et considérez que tous les secrets accessibles depuis cette machine sont compromis.
Besoin d'un accompagnement expert ?
Ayi NEDJIMI vous accompagne sur vos projets cybersécurité et IA : audit de la chaîne d'approvisionnement logicielle, mise en place de contrôles DevSecOps et conformité NIS2.
Prendre contactÀ propos de l'auteur
Ayi NEDJIMI
Auditeur Senior Cybersécurité & Consultant IA
Expert Judiciaire — Cour d'Appel de Paris
Habilitation Confidentiel Défense
ayi@ayinedjimi-consultants.fr
Ayi NEDJIMI est un vétéran de la cybersécurité avec plus de 25 ans d'expérience sur des missions critiques. Ancien développeur Microsoft à Redmond sur le module GINA (Windows NT4) et co-auteur de la version française du guide de sécurité Windows NT4 pour la NSA.
À la tête d'Ayi NEDJIMI Consultants, il réalise des audits Lead Auditor ISO 42001 et ISO 27001, des pentests d'infrastructures critiques, du forensics et des missions de conformité NIS2 / AI Act.
Conférencier international (Europe & US), il a formé plus de 10 000 professionnels.
Domaines d'expertise
Ressources & Outils de l'auteur
Articles connexes
Copilot Studio : les agents IA reçoivent une identité Entra et une boîte mail
Microsoft lance les Agent Accounts pour Copilot Studio : les agents IA reçoivent une identité Entra ID, une boîte Exchange et une présence Teams, avec audit natif dans Defender et Purview.
OpenAI intègre GPT-6 Astra et Codex sur Google Cloud
OpenAI intègre GPT-6 Astra, GPT-6.1 Sol et Codex dans Google Cloud Model Garden. GCP devient l'unique hyperscaler proposant les trois grandes familles de LLMs propriétaires sur une seule plateforme.
PHP2Shell : deux failles RCE critiques patchées en urgence
Deux failles RCE critiques CVSS 9.2 dans le cœur de PHP (CVE-2026-109618 et CVE-2026-109619) exposent 884 000 serveurs. Un patch d'urgence a été publié le 21 octobre 2026 après une divulgation prématurée.
Un projet cybersécurité ? Parlons-en.
Pentest, conformité NIS 2, ISO 27001, audit IA, RSSI externalisé… nos experts répondent sous 24h pour évaluer votre besoin et vous proposer un accompagnement sur mesure.
Commentaires
Aucun commentaire pour le moment. Soyez le premier à commenter !
Laisser un commentaire