Le 24 mars 2026, deux versions malveillantes du package Python LiteLLM ont été publiées sur le dépôt PyPI. Avec 3,4 millions de téléchargements par jour, cette bibliothèque d’interface unifiée pour les modèles d’intelligence artificielle constitue une cible de choix pour les attaquants. Les versions 1.82.7 et 1.82.8, disponibles pendant environ trois heures avant leur mise en quarantaine, contenaient un voleur d’identifiants capable de siphonner les accès aux services cloud des développeurs.
Une chaîne d’attaques en cascade
L’opération, attribuée au groupe TeamPCP (également connu sous les noms PCPcat, ShellForce et DeadCatx3), ne s’est pas limitée à LiteLLM. Tout a commencé le 19 mars 2026 par la compromission de Trivy, un scanner de sécurité open source maintenu par Aqua Security. Les attaquants ont réécrit les tags Git du dépôt trivy-action sur GitHub pour pointer vers une version malveillante (v0.69.4) équipée d’un mécanisme d’exfiltration d’identifiants. Parmi les cibles identifiées figurent Microsoft, Datadog et la Cloud Native Computing Foundation (CNCF).
Le 23 mars, la même infrastructure a servi à compromettre Checkmarx KICS, un autre outil de sécurité spécialisé dans l’analyse de code d’infrastructure. La progression est méthodique : les outils de sécurité d’abord, puis l’infrastructure d’intelligence artificielle.
Deux techniques d’injection distinctes
L’analyse technique révèle deux méthodes d’injection complémentaires. La version 1.82.7 utilise une injection directe dans le code source : le payload, encodé en base64, a été intégré dans le fichier litellm/proxy/proxy_server.py et s’exécute dès qu’un programme importe le module proxy de LiteLLM. La version 1.82.8 adopte une approche plus agressive en déposant un fichier litellm_init.pth dans le répertoire site-packages. Ce mécanisme .pth se déclenche à chaque démarrage de l’interpréteur Python, sans qu’aucune importation ne soit nécessaire.
Les chercheurs de Snyk, Aikido et Sonatype ont documenté cette attaque comme l’une des premières campagnes de la chaîne d’approvisionnement logicielle utilisant l’Internet Computer Protocol (ICP) comme mécanisme de commande et contrôle, rendant la détection plus difficile pour les outils de surveillance réseau traditionnels.
Les obligations au regard du RGPD
Les organisations ayant installé les versions compromises de LiteLLM sont potentiellement concernées par une violation de données au sens de l’article 33 du RGPD. Les identifiants dérobés (clés API de services cloud, tokens d’accès) peuvent donner accès à des bases de données contenant des données personnelles. Le responsable de traitement doit notifier la CNIL dans un délai de 72 heures s’il établit que des données personnelles ont pu être exposées.
L’article 32 du RGPD impose de mettre en place des mesures techniques appropriées au risque. L’absence de vérification de l’intégrité des dépendances logicielles et le recours à des pipelines CI/CD sans contrôles de sécurité renforcés posent la question de la conformité des mesures de protection adoptées par les organisations utilisant ces bibliothèques.
Mesures de remédiation recommandées
Les développeurs et équipes DevOps doivent vérifier immédiatement s’ils ont installé les versions 1.82.7 ou 1.82.8 de LiteLLM entre le 24 mars et la mise en quarantaine du package. Si c’est le cas, toutes les clés API, tokens et identifiants accessibles depuis l’environnement compromis doivent être considérés comme volés et révoqués sans délai.
Au-delà de la remédiation immédiate, cette série d’attaques illustre la nécessité d’épingler les versions des dépendances, de vérifier les signatures des packages et de surveiller les modifications anormales dans les pipelines d’intégration continue. L’ANSSI recommande depuis 2024 d’intégrer la sécurité de la chaîne d’approvisionnement logicielle dans la politique de sécurité des systèmes d’information, une exigence que la directive NIS2 rend désormais contraignante pour les entités essentielles et importantes.
Source : Sonatype – Malicious PyPI Package Exploits LiteLLM Proxy
Questions fréquentes
Qu’est-ce qu’une attaque supply chain sur un package Python ?
Une attaque supply chain sur un package Python consiste à compromettre un composant logiciel distribué via PyPI (le dépôt officiel Python). L’attaquant insère du code malveillant dans un package légitime ou crée un package au nom trompeur, afin d’infecter tous les développeurs qui l’installent dans leurs projets.
Comment se protéger contre les packages PyPI compromis ?
Pour se protéger, il est recommandé de vérifier systématiquement les noms de packages avant installation, d’utiliser des outils d’analyse de dépendances (comme Snyk ou Safety), de verrouiller les versions dans les fichiers requirements.txt et d’auditer régulièrement les dépendances de vos projets.
Quels risques pour les données personnelles lors d’une compromission de LiteLLM ?
LiteLLM étant un proxy pour les API d’intelligence artificielle, sa compromission peut exposer les clés API, les requêtes envoyées aux modèles de langage et les données personnelles qu’elles contiennent. Cela peut constituer une violation de données au sens du RGPD, nécessitant une notification à la CNIL sous 72 heures.




































