AccueilBlogSécurité
Sécurité30 mars 2026· 7 min

LiteLLM piraté : comment TeamPCP a volé tes clés API IA en une nuit

Le 24 mars 2026, l'attaquant TeamPCP a compromis LiteLLM v1.82.7 et v1.82.8 sur PyPI. 33 000 instances exposées, clés AWS/GCP/Azure volées. Ce qui s'est passé et comment te protéger.

Le 24 mars 2026 à 10h39 UTC, deux versions malveillantes de LiteLLM ont été publiées sur PyPI. 5 heures et demie de fenêtre d'exposition, 97 millions de téléchargements mensuels dans le viseur. Si tu utilises LiteLLM dans ton infra IA, lis ça maintenant.

C'est quoi LiteLLM et pourquoi c'est critique ?

LiteLLM est la librairie Python qui te permet d'appeler n'importe quel LLM (OpenAI, Anthropic, Mistral, Bedrock...) avec une interface unifiée. Elle est partout : dans les stacks d'automatisation IA, les outils RAG, les pipelines CI/CD qui testent des prompts. Environ 97 millions de téléchargements par mois sur PyPI. C'est le genre d'outil qu'on installe et qu'on oublie.

C'est exactement pour ça que TeamPCP l'a ciblé.

Comment l'attaque a fonctionné : une chaîne en 3 étapes

19 mars : l'entrée par Trivy. TeamPCP commence par compromettre Trivy, le scanner de vulnérabilités d'Aqua Security. Ils volent des credentials CI/CD via un GitHub Actions mal configuré. Ils publient Trivy v0.69.4 malveillant, et surtout ils récupèrent des tokens qui leur permettent de pivoter.

23 mars : Checkmarx KICS. Même méthode, lateral movement vers les GitHub Actions de Checkmarx (kics-github-action, ast-github-action). La chaîne s'élargit.

24 mars 10h39 UTC : LiteLLM touché. Avec des credentials de mainteneur volés (probablement via un workflow LiteLLM qui utilisait Trivy en CI), ils publient deux versions corrompues :

  • v1.82.7 : malware encodé en base64 dans proxy_server.py (lignes 128-139), s'exécute à l'import
  • v1.82.8 : encore plus discret, ajoute litellm_init.pth qui s'exécute à chaque démarrage Python, même sans importer LiteLLM

Les packages ont été retirés le soir même. Mais la fenêtre d'exposition était réelle.

Qu'est-ce que le malware fait concrètement ?

Le payload est un backdoor 3 étapes, clairement conçu pour l'infra IA :

Phase 1 - Collecte : Le malware scanne systématiquement :

  • Clés SSH (~/.ssh/)
  • Credentials cloud : AWS (~/.aws/), GCP, Azure
  • Tokens Kubernetes et secrets K8s
  • Fichiers .env (là où vivent tes clés OpenAI, Anthropic, etc.)
  • Historique shell (.bash_history, .zsh_history) pour y trouver des tokens passés en CLI
  • Variables CI/CD injectées en environnement

Phase 2 - Exfiltration : Tout est chiffré en AES-256 + RSA-4096, bundlé dans tpcp.tar.gz, et envoyé vers models.litellm.cloud (domaine fake, pas le vrai LiteLLM). Claw-Bot recommande de bloquer ce domaine immédiatement si tu as tourné ces versions.

Phase 3 - Persistance : Installation de ~/.config/sysmon/sysmon.py + service systemd sysmon.service (baptisé "System Telemetry Service" pour passer inaperçu). Le service poll checkmarx.zone/raw toutes les 50 minutes pour recevoir de nouveaux payloads. Des pods Kubernetes node-setup-* avec des containers baptisés kamikaze et provisioner sont également déployés dans les clusters atteints.

Est-ce que tu es touché ?

Tu es potentiellement exposé si tu as fait un pip install litellm ou pip upgrade litellm le 24 mars 2026 entre 10h39 et ~16h00 UTC, sans version épinglée.

La dernière version saine est la 1.82.6. Vérifie avec :

pip show litellm

Pour détecter une infection, cherche ces fichiers :

find /usr/lib/python3*/site-packages -name "litellm_init.pth" 2>/dev/null
ls ~/.config/sysmon/ 2>/dev/null
systemctl --user status sysmon.service 2>/dev/null

Si tu trouves quoi que ce soit : considère ton environnement comme compromis. Rotation de toutes tes clés, audit des logs CloudTrail/GCP, revue des accès K8s.

Ce que ça dit sur la sécurité de l'infra IA

L'OWASP a classé les attaques supply chain dans son Top 10 LLM 2026. 88% des organisations qui déploient des agents IA ont reporté un incident de sécurité l'année dernière selon Dark Reading.

Le problème structural ici : les équipes IA installent des dépendances Python comme si c'était des lego. Sans SBOMs, sans épinglage de versions, sans scan des packages tiers. LiteLLM est un middleware critique, il a accès à toutes tes clés API. Traite-le comme tel.

Claw-Bot applique ce principe sur toutes les installations OpenClaw : les dépendances tierces qui touchent aux credentials sont épinglées, auditées, et isolées du reste de l'environnement. C'est fastidieux. C'est nécessaire.

Les IOC à bloquer maintenant

Si tu veux faire un scan défensif rapide :

Domaines : models.litellm.cloud / checkmarx.zone / aquasecurtiy.org
IP : 83.142.209.203
Fichiers : litellm_init.pth, sysmon.py, sysmon.service, /tmp/pglog, /tmp/.pg_state
Pods K8s : node-setup-* (containers kamikaze / provisioner)
Header réseau : X-Filename: tpcp.tar.gz

Sources : Datadog Security Labs, Security Affairs, LiteLLM Security Update

Si tu construis une infra IA et que tu veux partir sur des bases saines, regarde ce que Claw-Bot propose

Un projet OpenClaw ?

Setup sécurisé, formation, support. On en parle ?