- Un fichier
.pth exécuté automatiquement au démarrage de l’interpréteur Python est inclus, et il collecte puis exfiltre des informations sensibles comme des clés API, des clés SSH et des tokens cloud
- Le script malveillant est dissimulé par un double encodage base64 et envoie les données collectées vers
litellm.cloud après les avoir chiffrées en AES-256 puis protégées avec une clé publique RSA
- En cas d’infection, les identifiants de l’environnement local, du CI/CD et des serveurs de production peuvent tous être exposés
- La présence de code malveillant dans la version 1.82.7 a également été signalée, ce qui rend les deux versions dangereuses
- La communauté sécurité recommande en urgence de supprimer le package, faire tourner les identifiants et renforcer la sécurité de la supply chain
Incident de sécurité lié au fichier malveillant litellm_init.pth dans le package PyPI de litellm 1.82.8
- Le package wheel PyPI de la version litellm 1.82.8 inclut un fichier
.pth malveillant (litellm_init.pth), provoquant l’exécution automatique d’un script de vol d’identifiants à chaque démarrage de l’interpréteur Python
- Ce fichier s’exécute même sans la commande
import litellm, et le cas a été confirmé comme une attaque de supply chain
- Le fichier malveillant est mentionné dans le fichier
RECORD du package
-
Analyse du comportement malveillant
- Le fichier
.pth exploite la caractéristique d’exécution automatique au démarrage de l’interpréteur Python
- Le script malveillant est dissimulé via un double encodage base64 et, une fois décodé, exécute les étapes suivantes
-
Étape 1 : collecte d’informations
- Informations système :
hostname, whoami, uname -a, ip addr, ip route
- Variables d’environnement : collecte de clés API, secrets, tokens, etc. via
printenv
- Clés SSH : principaux fichiers de clés et fichiers de configuration dans
~/.ssh/
- Identifiants Git :
~/.gitconfig, ~/.git-credentials
- Identifiants cloud : fichiers de configuration et tokens liés à AWS, GCP et Azure
- Configuration Kubernetes :
/etc/kubernetes/, ~/.kube/config, etc.
- Configuration Docker :
~/.docker/config.json, etc.
- Configuration des gestionnaires de paquets :
.npmrc, .netrc, .vault-token, etc.
- Historique shell :
.bash_history, .zsh_history, etc.
- Portefeuilles de cryptomonnaies :
~/.bitcoin/, ~/.ethereum/keystore/, etc.
- Clés privées SSL/TLS :
/etc/ssl/private/, fichiers .pem, .key
- Secrets CI/CD :
terraform.tfvars, .gitlab-ci.yml, Jenkinsfile, etc.
- Identifiants de bases de données : fichiers de configuration PostgreSQL, MySQL, Redis, etc.
- URLs de webhook : recherche d’URLs Slack, Discord, etc.
-
Étape 2 : chiffrement et exfiltration
- Les données collectées sont enregistrées dans un fichier temporaire
- Génération d’une clé de session AES-256 de 32 octets avec
openssl rand
- Chiffrement des données avec
openssl enc -aes-256-cbc -pbkdf2
- La clé de session est chiffrée avec une clé publique RSA 4096 bits codée en dur
- Les deux fichiers sont regroupés dans
tpcp.tar.gz puis envoyés
- Destination de l’envoi :
https://models.litellm.cloud/ (différent du domaine officiel litellm.ai)
-
Détails techniques
- Le fichier
.pth se trouve dans le site-packages/ de Python et est exécuté automatiquement au démarrage de l’interpréteur
- La charge utile utilise un double encodage base64 pour échapper à la détection
- L’attaquant exploite le domaine
litellm.cloud comme serveur d’exfiltration de données
- Début de la clé publique RSA :
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAvahaZDo8mucujrT15ry+...
-
Portée de l’impact
- En installant
litellm==1.82.8, toutes les informations secrètes, comme les variables d’environnement, les clés SSH et les identifiants cloud, peuvent fuiter
- Cibles concernées :
- environnement de développement local
- pipelines CI/CD
- conteneurs Docker
- serveurs de production
- En outre, la version 1.82.7 aurait également contenu du code malveillant dans
proxy/proxy_server.py
-
Mesures recommandées
-
- PyPI : supprimer immédiatement ou yanker
litellm 1.82.8
-
- Utilisateurs :
- vérifier la présence de
litellm_init.pth dans site-packages/
- faire tourner tous les identifiants sur les systèmes où cette version a été installée
-
- BerriAI : nécessité d’un audit de sécurité des identifiants de publication PyPI et du pipeline CI/CD
-
Environnement de découverte
- OS : Ubuntu 24.04 (conteneur Docker)
- Python : 3.13
- Chemin d’installation : PyPI
- Date de découverte : 24 mars 2026
-
Réaction de la communauté et discussions complémentaires
- De nombreux développeurs ont mentionné que des milliers de personnes pourraient déjà être infectées
- Certains utilisateurs ont confirmé que la version 1.82.7 était également infectée
- Les experts sécurité soulignent la nécessité du pinning des dépendances et d’un renforcement de la sécurité de la supply chain
agnosticlines et d’autres ont pointé du doigt les faiblesses de GitHub Actions et la répétition des attaques de supply chain
MountainGod2 a averti que les dépendances devraient être figées par hash de commit et que les nouvelles releases ne devraient être utilisées qu’après vérification
- Plusieurs projets (
mlflow, home-assistant, morphik-core, etc.) ont figé ou supprimé la version de litellm
Aucun commentaire pour le moment.