Retour au blog
LiteLLMsupply chainPyPIagents IAclés API

LiteLLM 1.107.0 piégé sur PyPI et Docker : un voleur de clés cloud et IA dans la passerelle de vos agents

Publié le 2026-10-22 · Mis à jour le 2026-10-246 min de lectureCleanIssue

> En bref : Le 21 octobre 2026, le pipeline de publication de LiteLLM a été compromis et a poussé une version 1.107.0 malveillante sur PyPI et Docker Hub. Elle contenait un voleur d'identifiants : cloud, Kubernetes, clés SSH, cookies de navigateur, et fichiers d'authentification de Codex, Claude, Gemini et Cursor. C'est la deuxième attaque de ce type contre LiteLLM cette année. Toutes les versions précédentes sont saines, la dernière étant 1.106.2. Si vous avez installé 1.107.0, considérez vos identifiants comme compromis.

Ce qui s'est passé

  • Accès : selon LiteLLM, l'attaquant a utilisé les comptes GitHub de trois ingénieurs, apparemment via des jetons OAuth de GitHub CLI volés. Un compte a modifié le pipeline et lancé la publication, un deuxième l'a approuvée, un troisième a supprimé les traces du workflow.
  • Fenêtre : le paquet est resté sur PyPI de 11 h 39 à 13 h 23 UTC. Les images Docker v1.107.0, latest, main-latest et main-stable ont servi la version piégée de 11 h 46 à 14 h 20 UTC.
  • Persistance : le code malveillant était placé dans des fichiers de démarrage de Python. Il s'exécute à chaque lancement de Python dans l'environnement touché, même si l'application n'importe jamais LiteLLM.
  • Utilisation : Wiz a observé les identifiants volés en action environ quatre heures et demie après l'exfiltration. L'attaquant testait des clés AWS prises sur des runners CI et des nœuds Kubernetes pour accéder aux modèles d'Amazon Bedrock.
  • Le malware cherchait aussi à lire la base des déploiements de proxy LiteLLM, qui contient les clés des fournisseurs de modèles. Les chercheurs précisent que cela montre l'intention sans prouver le succès.

    Pourquoi c'est un incident d'agent IA

    LiteLLM est la passerelle que beaucoup d'équipes placent entre leurs agents et les fournisseurs de modèles. Elle concentre les clés de tous les modèles, les budgets et souvent les journaux de prompts. Compromettre la passerelle, c'est obtenir le pouvoir de dépenser au nom de l'entreprise et parfois de lire ce que les agents envoient.

    Ce qu'il faut faire maintenant

  • Cherchez 1.107.0 dans vos environnements : postes de développeurs, runners CI, images Docker tirées avec latest le 21 octobre.
  • Si vous la trouvez, faites tourner tous les identifiants accessibles depuis la machine : clés cloud, jetons GitHub, clés SSH, clés de fournisseurs de modèles, et les fichiers d'authentification des assistants de code.
  • Épinglez les versions et les empreintes de vos dépendances. N'utilisez pas latest en production.
  • Surveillez la facturation de vos fournisseurs de modèles : un usage anormal sur Bedrock ou ailleurs est le premier signe d'une clé volée.
  • La leçon

    Le maillon le plus exposé d'une architecture d'agents n'est pas toujours le modèle. Ici, c'est un jeton OAuth sur le poste d'un développeur qui a ouvert la porte de la passerelle de tous les agents.

    Vous éditez un logiciel ? CleanIssue réalise des audits de sécurité pour votre produit en conditions réelles, sans accès au code. Pour une première lecture de votre exposition, commencez par une revue externe de votre application.

    Besoin de savoir ce que votre agent IA peut faire ?

    Expliquez votre agent, ses tools et votre contexte client. Nous revenons vers vous avec le bon niveau de revue.

    Parler de votre audit