Tu lances pip install litellm, tu vas te chercher un café, tu reviens devant ton terminal. Tout a l'air normal. Tes clés SSH — les passe-partout numériques de tes serveurs — sont déjà en route vers la boîte mail de quelqu'un d'autre.

Le 24 mars 2026, ce scénario s'est produit pour de vrai.

Ce qui s'est passé

LiteLLM est le proxy LLM open-source le plus populaire — un traducteur universel qui permet à ton code de parler à n'importe quel modèle d'IA (Claude, GPT, Gemini) via une seule interface. Environ 3,4 millions de téléchargements par jour. Si tu bosses avec l'IA en Python, tu l'as forcément croisé.

Un acteur malveillant baptisé TeamPCP a uploadé deux versions empoisonnées — 1.82.7 et 1.82.8 — directement sur PyPI (Python Package Index — l'app store des bibliothèques Python). Le malware à l'intérieur récoltait les clés SSH, les identifiants cloud, les tokens API et les variables d'environnement. Ensuite, il tentait de se propager à travers les clusters Kubernetes — ces réseaux de conteneurs qui font tourner la majorité de l'infrastructure cloud.

Le plus vicieux : la version 1.82.8 utilisait un fichier .pth. En Python, les fichiers .pth s'exécutent automatiquement au démarrage de l'interpréteur. Pas quand tu importes une bibliothèque. Quand n'importe quel processus Python se lance. L'autocomplétion de ton IDE ? Compromis. Tu lances pip install autre-chose ? Compromis. Le malware n'avait besoin ni de ta permission ni de ton attention.

Comment ils sont entrés

TeamPCP n'a pas hacké LiteLLM directement. Ils ont joué un coup plus long.

D'abord, ils ont backdooré Trivy d'Aqua Security — un scanner de sécurité open-source populaire — en empoisonnant l'une de ses GitHub Actions (des scripts automatisés qui tournent dans les pipelines CI/CD — les chaînes de montage qui compilent et livrent le code). Le Trivy compromis s'exécutait dans le propre pipeline CI de LiteLLM, faisant ce qu'il fait toujours : scanner les vulnérabilités. Sauf que maintenant, il volait aussi discrètement les identifiants PyPI.

Avec ces identifiants volés, TeamPCP a uploadé les paquets malveillants directement sur PyPI. Pas de pull request. Pas de code review. Aucun signal d'alerte. L'outil de sécurité est devenu le vecteur d'attaque.

Datadog Security Labs a retracé cette attaque comme faisant partie d'une campagne coordonnée sur plusieurs semaines, qui a aussi touché le scanner KICS de Checkmarx. TeamPCP a transformé en armes les outils que les entreprises utilisent pour se protéger.

Trois heures ont suffi

Les versions malveillantes sont restées sur PyPI environ trois heures — entre 10h39 UTC et 16h00 UTC le 24 mars. La communauté a donné l'alerte, PyPI a mis le paquet en quarantaine. La compromission n'a pas touché LiteLLM Cloud ni les images Docker officielles — elles utilisent des versions épinglées.

Mais trois heures à 3,4 millions de téléchargements par jour, ça fait des milliers d'installations. Quiconque a lancé pip install --upgrade litellm pendant cette fenêtre — ou avait un pipeline automatisé qui l'a fait à sa place — s'est fait avoir.

Que faire si tu es concerné

Si tu as installé ou mis à jour LiteLLM le 24 mars entre 10h39 et 16h00 UTC, félicitations — ton week-end vient d'être annulé :

  • Fais tourner toutes tes clés. Clés SSH, tokens cloud, clés API, mots de passe de bases de données — tout ce qui vivait dans tes variables d'environnement
  • Vérifie les mouvements latéraux. Surtout dans les clusters Kubernetes. Le malware essayait activement de se propager
  • Épingle la version 1.82.6 ou antérieure en attendant que la poussière retombe
  • Audite ton CI/CD. Si tu utilises Trivy ou Checkmarx KICS, vérifie que tes GitHub Actions n'ont pas été altérées

Le schéma qui devrait te faire flipper

Cette attaque n'est pas spéciale à cause de LiteLLM. Elle est spéciale à cause de la méthode. TeamPCP n'a pas trouvé de zero-day. Ils n'ont pas phishé un mainteneur. Ils ont compromis un scanner de sécurité — un outil qui existe précisément pour empêcher ce genre de chose — et l'ont utilisé comme passe-partout pour tout ce qui se trouvait en aval.

Les attaques de supply chain — où les hackers ciblent les outils et bibliothèques dont ton code dépend au lieu de t'attaquer directement — deviennent de plus en plus créatives. Les chaînes de confiance dans l'open source sont longues et fragiles. Tu fais confiance à LiteLLM. LiteLLM fait confiance à Trivy. Trivy fait confiance à une GitHub Action. La GitHub Action fait confiance à... qui, exactement ?

Épingle tes dépendances. Vérifie les checksums. Ne fais pas d'auto-upgrade en production. Et peut-être que tu devrais traiter ton scanner de sécurité avec la même méfiance que n'importe quelle autre dépendance — parce que visiblement, il le mérite.

LiteLLM Security Update · Analyse Snyk · Datadog Security Labs · BleepingComputer