La version 1.107.0 de LiteLLM a été compromise le 21 octobre 2026 sur PyPI et Docker Hub, embarquant un credential stealer et un backdoor visant clés SSH, tokens API et secrets CI/CD des développeurs IA.
En bref
- La version 1.107.0 de LiteLLM, bibliothèque Python proxy pour LLM avec 23 millions de téléchargements hebdomadaires, a été compromise le 21 octobre 2026 sur PyPI et Docker Hub avec un credential stealer et un backdoor.
- Toute organisation ayant installé cette version expose ses clés SSH, credentials cloud AWS/GCP/Azure, tokens CI/CD, mots de passe de navigateurs et clés API OpenAI, Anthropic, Cohere ou Mistral.
- La rotation immédiate de tous les secrets et la reconstruction des environnements concernés sont impératives ; les versions 1.107.1 et ultérieures sont saines.
Ce qui s'est passé
Le 21 octobre 2026, à 14h37 UTC, un acteur malveillant a publié la version 1.107.0 de LiteLLM sur le dépôt officiel Python Package Index (PyPI). La bibliothèque, développée par BerriAI, est un proxy unifié permettant aux développeurs d'appeler une centaine de fournisseurs de modèles de langage — OpenAI, Anthropic, Azure OpenAI, Google Vertex, Cohere, Mistral et bien d'autres — via une interface commune. Avec environ 23 millions de téléchargements hebdomadaires, LiteLLM est devenue une infrastructure critique invisible de l'écosystème IA : elle équipe des startups, des équipes DevOps, des plateformes MLOps et des applications d'agents IA dans des milliers d'entreprises à travers le monde.
La compromission a touché les sept wheels (fichiers .whl) publiés pour cette version, couvrant Python 3.8 à 3.12 sur Linux, macOS et Windows. Les images Docker officielles LiteLLM 1.107.0 hébergées sur Docker Hub ont également été contaminées avec le même payload. Selon les analyses publiées par Microsoft Security Blog, Chainguard, StepSecurity et Datadog Security Labs, l'attaquant a probablement obtenu l'accès aux comptes PyPI et Docker Hub de BerriAI via une compromission préalable de secrets de pipeline CI/CD ou de tokens d'authentification.
Le mécanisme d'infection est particulièrement sophistiqué. L'attaquant a inséré un fichier nommé cook.pth dans le répertoire site-packages de l'installation Python. Les fichiers .pth sont lus par l'interpréteur Python à chaque démarrage, avant même l'exécution du script principal ou l'importation de la moindre bibliothèque. Concrètement, toute commande python, pip, pytest ou autre invocation de l'interpréteur déclenchait automatiquement le payload malveillant, y compris dans des environnements où LiteLLM n'était jamais explicitement importé. Cette technique d'injection via .pth contourne la plupart des contrôles d'intégrité statiques et reste peu détectée par les solutions antivirus traditionnelles.
Le credential stealer embarqué ciblait méthodiquement toutes les sources de secrets accessibles sur le système. Il exfiltrait en premier lieu les clés SSH stockées dans ~/.ssh/, y compris les clés privées RSA, Ed25519 et ECDSA. Il collectait ensuite les fichiers de configuration des clouds publics : ~/.aws/credentials et ~/.aws/config pour Amazon Web Services, ~/.config/gcloud/ pour Google Cloud Platform, et les tokens d'authentification Azure CLI. Les variables d'environnement du processus étaient également aspirées intégralement, exposant les secrets injectés par les pipelines CI/CD — tokens GitHub Actions, variables GitLab CI, paramètres CircleCI, secrets Kubernetes montés dans les pods.
Les tokens et clés API des fournisseurs de modèles de langage constituaient une cible de choix. Le malware analysait les fichiers de configuration courants et les variables d'environnement nommées selon les conventions des principaux fournisseurs — OPENAI_API_KEY, ANTHROPIC_API_KEY, COHERE_API_KEY, MISTRAL_API_KEY — ainsi que la base de données SQLite embarquée du proxy LiteLLM, qui stocke les clés des providers configurés. Les mots de passe enregistrés dans les navigateurs Chromium, Firefox et Safari étaient également visés via leurs bases de données locales. L'ensemble des données volées était exfiltré vers un serveur externe contrôlé par l'attaquant via une requête HTTPS chiffrée, rendant l'exfiltration invisible dans les logs réseau courants.
En complément du credential stealer, la version compromise embarquait un loader de second niveau qui se connectait toutes les heures à une URL externe pour télécharger et exécuter du code Python arbitraire. Ce mécanisme de Remote Access Trojan (RAT) permettait à l'attaquant de déployer des charges utiles supplémentaires, d'établir des tunnels de persistance, ou de pivoter vers d'autres systèmes du réseau interne à partir de tout environnement de développement ou serveur de production où LiteLLM était exécuté.
La détection a été rapide mais insuffisante pour empêcher l'exposition. Les premières alertes ont été publiées sur GitHub environ 90 minutes après la mise en ligne de la version malveillante, vers 16h07 UTC. PyPI a retiré la version 1.107.0 à 16h34 UTC, soit environ deux heures après sa publication. BerriAI a supprimé les images Docker contaminées dans la foulée et a publié la version 1.107.1 le 24 octobre, après vérification complète du code et rotation de ses propres secrets de pipeline. La fenêtre d'exposition de deux heures, combinée aux mécanismes automatiques de mise à jour des dépendances et aux caches de registres internes, signifie que de nombreuses organisations ont pu installer la version compromise sans le savoir.
Il est important de noter que cette attaque constitue le second compromis de LiteLLM en sept mois. Un premier incident similaire, bien que de moindre ampleur, avait frappé la bibliothèque en mars 2026, impliquant une dépendance transitoire compromise. BerriAI avait alors renforcé ses procédures de publication, mais cela n'a pas suffi à prévenir cette nouvelle attaque directement ciblée sur les comptes de publication officiels.
Pourquoi c'est important
LiteLLM est devenue, souvent à l'insu des équipes sécurité, une infrastructure critique de l'IA d'entreprise. Des plateformes MLOps, des outils d'orchestration d'agents, des serveurs de proxies unifiés en production s'appuient sur elle. Compromettre LiteLLM, c'est potentiellement ouvrir un accès simultané aux clés API de dizaines de fournisseurs IA, aux pipelines de déploiement, et aux environnements cloud de l'organisation. Le risque n'est pas théorique : un attaquant disposant de clés OpenAI volées peut générer des coûts API massifs, exfiltrer des données envoyées aux modèles, ou réutiliser les clés pour des attaques à grande échelle.
La technique de persistence via fichier .pth illustre l'évolution des attaques supply chain. Contrairement aux méthodes classiques qui modifient le code du package lui-même, l'injection via .pth exploite un mécanisme légitime de l'interpréteur Python. Elle échappe aux vérifications SBOM qui inspectent uniquement les fichiers source, aux contrôles de signature des wheels qui vérifient l'authenticité du publisher mais pas le contenu malveillant, et à la plupart des analyses statiques qui ne simulent pas le démarrage de l'interpréteur. Cette technique est susceptible d'être réutilisée dans de futures attaques supply chain ciblant l'écosystème Python.
Le contexte de cette attaque s'inscrit dans une tendance de fond : les attaques supply chain sur PyPI ont augmenté de manière significative en 2025 et 2026, ciblant de plus en plus l'écosystème IA. Des bibliothèques comme Hugging Face Transformers, LangChain, et diverses dépendances de frameworks d'agents ont été visées par des tentatives d'injection. Les attaquants ont compris que les développeurs IA sont souvent moins vigilants sur la sécurité des dépendances que les équipes DevOps traditionnelles, et que les secrets qu'ils détiennent — clés de modèles commerciaux avec des limites de facturation élevées — ont une valeur marchande immédiate sur les marchés underground.
Pour les équipes de sécurité, cet incident illustre l'urgence d'intégrer les dépendances IA dans les programmes de gestion des risques supply chain. Les contrôles habituels — vérification des hachages, SBOM, audit des nouvelles versions — sont nécessaires mais insuffisants. Il faut aussi surveiller les accès inhabituels aux ressources cloud après mise à jour de dépendances, mettre en place des alertes sur les nouvelles connexions SSH sortantes depuis les environnements de build, et appliquer le principe du moindre privilège aux secrets accessibles dans les pipelines CI/CD. La segmentation des secrets par environnement et par projet limite considérablement le rayon d'explosion d'une telle compromission.
Ce qu'il faut retenir
- Toute installation de LiteLLM 1.107.0 entre le 21 et le 24 octobre 2026 doit être considérée comme compromise : isoler les environnements, reconstruire les images, mettre à jour vers 1.107.1 minimum.
- Rotater immédiatement les clés SSH, tokens API (OpenAI, Anthropic, Azure, GCP, AWS), secrets CI/CD et variables d'environnement présents sur les machines concernées.
- Auditer les logs d'accès SSH, les appels API et les connexions réseau sortantes depuis le 21 octobre pour détecter tout usage malveillant des credentials exfiltrés.
Suis-je exposé si j'utilise l'image Docker LiteLLM plutôt que pip ?
Oui, les images Docker officielles LiteLLM 1.107.0 hébergées sur Docker Hub contiennent le même payload malveillant que les wheels PyPI. Si vous avez déployé des conteneurs basés sur cette version entre le 21 et le 24 octobre 2026, tous les secrets accessibles depuis ces conteneurs — variables d'environnement, volumes montés, secrets Kubernetes — doivent être considérés comme compromis et faire l'objet d'une rotation immédiate.
Besoin d'un accompagnement expert ?
Ayi NEDJIMI vous accompagne sur vos projets cybersécurité et IA.
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
DMA : AWS et Azure vers le statut de gardien numérique en UE
La Commission européenne s'apprête à désigner AWS et Microsoft Azure comme gardiens numériques sous le Digital Markets Act en novembre 2026, avec six mois de mise en conformité et des amendes potentielles à 10 % du CA mondial.
Apple adopte Alibaba Qwen pour Apple Intelligence en Chine
Apple a annoncé le 31 octobre 2026 son partenariat avec Alibaba pour intégrer le modèle Qwen dans Apple Intelligence sur le marché chinois, avec une bêta iOS 27.3 le 4 novembre et un déploiement public en décembre.
C3RB3R ransomware : NAS Synology chiffres en .L0CK3D via CVE-2026-13639 CVSS 9.8
C3RB3R, souche ransomware de la famille Cerber, cible les NAS Synology depuis octobre 2026 via CVE-2026-13639 et CVE-2026-13684 (CVSS 9.8). Fichiers renommes en .L0CK3D, rancon 2952 USD en Bitcoin. Aucun decrypteur public.
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