Points clés
- LiteLLM 1.82.7 et 1.82.8 (24 mars 2026) contenaient du code malveillant
- L’attaque visait à voler des clés API et données de configuration
- Verrouillez vite vos dépendances Python avec des versions exactes
- Scannez vos environnements avec pip-audit et safety
- Configurez des alertes pip pour les mises à jour suspectes
Chapô : Le 24 mars 2026, deux versions malveillantes de LiteLLM ont été découvertes sur PyPI. Ce proxy Python utilisé par des millions de devs a été compromis via une attaque supply chain. Nous vous montrons comment identifier l’infection, sécuriser votre code et protéger vos projets IA contre ces menaces émergentes.
Qu’est-ce qui s’est passé avec LiteLLM en mars 2026 ?
LiteLLM est un outil proxy puissant utilisé par les développeurs IA du monde entier pour standardiser les appels aux grandes familles de modèles : OpenAI, Claude, Cohere, Hugging Face, Ollama, etc. Au lieu de jongler avec des dizaines de SDK différents, vous écrivez une seule requête et LiteLLM la traduit pour n’importe quelle plateforme. C’est simple, c’est efficace, et c’est justement pour ça qu’il est devenu un maillon critique dans la chaîne de dépendances de milliers de projets.
Le 24 mars 2026, deux versions malveillantes ont été publiées sur PyPI (le dépôt officiel Python) : LiteLLM 1.82.7 et 1.82.8. Un attaquant a réussi à compromettre les droits de publication sur le paquet, probablement via une clé API volée ou un compte développeur piraté. Les deux versions contenaient un code injecté qui tentait de :
- Voler vos clés API (OpenAI, Claude, Anthropic, etc.)
- Exfiltrer les fichiers de configuration contenant vos données sensibles
- Envoyer les informations à un serveur de commande et contrôle
- Potentiellement installer d’autres charges malveillantes en arrière-plan
Heureusement, la communauté open source et l’équipe PyPI ont réagi vite : les paquets malveillants ont été retirés en moins de quelques heures après la découverte. Mais pendant ce temps, des développeurs qui ont lancé pip install litellm ou pip install -U litellm ont pu être infectés sans le savoir.
Pourquoi les attaques supply chain visent l’écosystème IA ?
Les attaques supply chain ne sont pas nouvelles, mais elles explosent en 2026. Voici pourquoi :
pip install package sans épingler une version exacte, ce qui veut dire qu’une nouvelle version malveillante s’installe automatiquement.Cette attaque est un signal d’alarme : la sécurité supply chain doit devenir une priorité absolue pour vous si vous construisez avec l’IA.
Étape 1 : Vérifier si vous avez été touché
La première chose à faire, c’est de déterminer si LiteLLM 1.82.7 ou 1.82.8 se trouve dans vos environnements actuels. Voici comment procéder :
Commande 1 : Lister votre version installée
Ouvrez un terminal dans chaque projet Python qui utilise LiteLLM (ou vos environnements virtuels) et lancez :
pip list | grep litellmSi vous voyez litellm 1.82.7 ou litellm 1.82.8, vous êtes potentiellement infecté. Notez bien la version exacte.
Commande 2 : Vérifier l’historique des installations
Regardez quand la version a été installée :
pip show litellmCette commande affiche des métadonnées. Si l’installation date du 24 mars 2026 ou peu après, c’est un indicateur fort d’infection. Demandez-vous : « As-je installé ou mis à jour LiteLLM ce jour-là ? »
Commande 3 : Inspecter les fichiers suspects
Sur Linux/macOS, localisez le dossier d’installation et inspectez son contenu :
python -c "import litellm; print(litellm.__path__)"Puis examinez les fichiers .py pour chercher du code suspect : appels à `urllib`, ouverture de fichiers sensibles, connexions réseau non documentées. Le code malveillant était obfusqué mais contient souvent des patterns distinctifs.
Étape 2 : Nettoyer et réinstaller
Si vous avez détecté LiteLLM 1.82.7 ou 1.82.8, il faut agir maintenant :
Suppression complète
pip uninstall litellm -y
pip cache purgeRéinstallation d’une version sûre
Installez la dernière version patché (1.82.9 ou supérieur, selon le moment où vous lisez cet article) :
pip install litellm==1.82.9Remplacez 1.82.9 par la version actuelle recommandée. Consultez la page officielle LiteLLM GitHub pour la version sûre confirmée.
Regénération immédiate des clés API
C’est crucial : si votre code a été infecté pendant quelques heures, vos clés API ont pu être compromises. Révoquez-les et générez-en des nouvelles :
platform.openai.com → API keys, supprimez les anciennes, créez de nouvelles clésconsole.anthropic.com → API keys, même processusÉtape 3 : Sécurisez votre écosystème Python avec des dépendances épinglées
La raison pour laquelle cette attaque a pu se propager aussi vite, c’est que les gens installent les dépendances avec des versions flexibles. Ne faites pas cette erreur.
Fichier requirements.txt : utilisez des versions exactes
Créez ou mettez à jour votre fichier requirements.txt avec des versions précises :
litellm==1.82.9
openai==1.52.0
anthropic==0.25.8
langchain==0.1.14
requests==2.31.0Utilisez == (égalité exacte), pas ~= ou >=. Oui, vous devrez tester manuellement les mises à jour, mais c’est le prix de la sécurité.
Fichier pyproject.toml : même approche
Si vous utilisez pyproject.toml (moderne, recommandé) :
[project]
dependencies = [
"litellm==1.82.9",
"openai==1.52.0",
"anthropic==0.25.8",
]Commandes CI/CD : verrouillez aussi en production
Dans vos pipelines GitHub Actions, GitLab CI, etc., utilisez toujours pip install -r requirements.txt ou pip install --no-deps pour garantir que les dépendances ne se mettent pas à jour surprise.
Étape 4 : Scannez vos dépendances avec les outils de sécurité
Maintenant que vous avez nettoyé, mettez en place un système de surveillance automatique :
pip-audit : détecte les vulnérabilités connues
Installez et utilisez pip-audit :
pip install pip-audit
pip-auditCet outil compare vos dépendances actuelles contre une base de données CVE (Common Vulnerabilities and Exposures). Il vous avertira si vous avez une version vulnérable installée.
safety : autre outil d’audit
pip install safety
safety checkSafety fonctionne de façon similaire et peut avoir une base de données légèrement différente. Utilisez-le en complément.
Intégration dans votre CI/CD
Ajoutez ces commandes à votre workflow GitHub Actions ou GitLab CI pour que les scans s’exécutent à chaque push :
- name: Scan for vulnerabilities
run: |
pip install pip-audit
pip-audit --strictLe flag --strict fait échouer le build si une vulnérabilité est trouvée.
Étape 5 : Configurez des alertes et une veille de sécurité
Le contrôle c’est bien, mais la prévention c’est mieux. Mettez en place une veille proactive :
Suive les annonces de sécurité PyPI
Dépôt Dependabot sur GitHub
Si vous hébergez votre code sur GitHub, activez Dependabot pour recevoir des PRs automatiques quand une mise à jour de sécurité existe :
Alertes personnalisées
Configurez Google Alerts ou des outils comme IFTTT pour monitorer certains mots-clés :
Astuces pro pour renforcer votre posture de sécurité
Au-delà du nettoyage immédiat, voici ce que les devs IA chevronné font :
Erreurs courantes à éviter
pip install "litellm>=1.82" c’est dangereux. Épinglez les versions exactes.Résumé en 5 points
pip list | grep litellmFAQ : Les questions que vous vous posez
Est-ce que je dois paniquer si j’ai utilisé une version malveillante ?
Non, mais oui. La bonne nouvelle : l’attaque a été découverte et neutralisée vite. La mauvaise : si vous avez exécuté du code avec ces versions, vos clés API ont pu être compromises. Faites les trois choses suivantes immédiatement : (1) nettoyez l’installation, (2) régénérez les clés API, (3) vérifiez vos logs pour détecter les appels API suspects. Si tout est propre, vous êtes bon. Si vous voyez des appels frauduleux, contactez immédiatement les fournisseurs (OpenAI, Anthropic, etc.) et signalez la fraude.
Peut-il y avoir d’autres paquets IA infectés en ce moment ?
Probablement. LiteLLM n’est pas un cas isolé. Des attaques supply chain vont continuer à se produire. La meilleure défense c’est une bonne hygiène : épinglez vos versions, scannez régulièrement avec pip-audit et safety, et restez vigilant. Lire les changelogs des projets que vous utilisez est aussi une bonne pratique.
Dois-je auditer tout mon code pour du code malveillant injecté ?
En théorie, oui. En pratique, si vous avez exécuté LiteLLM infecté, le malware avait accès à vos fichiers de configuration et vos variables d’environnement. Plutôt que de chercher l’aiguille dans la botte de foin, concentrez-vous sur : (1) regénérer les clés, (2) nettoyer votre environnement, (3) redéployer une version propre. Si vous voulez être extra prudent, lancez un scan antivirus/antimalware sur la machine en question.
Combien de time j’ai pour nettoyer avant qu’il ne soit trop tard ?
L’attaque remonte au 24 mars 2026, mais des dégâts peuvent survenir des semaines ou mois après (les clés peuvent être utilisées progressivement). Faites-le dès aujourd’hui. Plus vous attendez, plus le risque augmente. Une heure c’est le timing idéal pour (1) déterminer si vous êtes affecté, (2) nettoyer, (3) régénérer les clés. Deux heures max si vous devez coordonner avec d’autres ou tester en prod.
Pour aller plus loin
La sécurité supply chain en Python est un domaine qui émerge. Quelques ressources pour rester à jour :
pypi.org/help#securityLe monde de l’IA se construit vite, mais la sécurité doit rester une fondation solide. Prenez le temps de sécuriser votre écosystème aujourd’hui, vous éviterez des crises demain.
