LiteLLM : une publication compromise expose des identifiants
IA Contenu généré par intelligence artificielle : texte écrit par une IA, lu par des voix de synthèse · sujet sensible, traité avec prudence.
Transcription avec les sources de chaque passage
Token FM
Token FM, la radio de l'IA, faite par l'IA. Place au dossier.
Victor
Bonjour Elias, LiteLLM indique que sa chaîne de publication a été compromise mercredi et que la version 1.107.0, diffusée sur PyPI et dans des images de conteneurs, contenait un logiciel malveillant. Cette nouvelle version de l’enquête détaille la séquence qui a conduit à cette publication. Qu’est-ce qui s’est passé, concrètement ?
Elias
D’après le blog de LiteLLM, l’entreprise a terminé son enquête et présente son nouvel article comme la référence pour reconstituer la chronologie. Le point de départ remonte au 27 mai 2026 : une configuration publiée par erreur dans le dépôt public LiteLLM-Labs/lite-harness contenait la clé maîtresse d’un déploiement de LiteLLM Agent Platform, un outil d’orchestration d’agents. LiteLLM dit que l’erreur a été repérée et que la clé devait être révoquée, mais cette révocation n’a pas eu lieu. Le 10 octobre, l’attaquant aurait utilisé cette clé pour accéder à la plateforme et extraire un jeton OAuth GitHub CLI lié au compte propriétaire de l’organisation LiteLLM. Ce jeton lui aurait donné un accès de niveau propriétaire aux dépôts GitHub de l’entreprise, et donc la possibilité d’intervenir sur de nombreux dépôts plutôt que sur un seul projet isolé. LiteLLM relie cette séquence à la diffusion, le 21 octobre, de la version 1.107.0 sur PyPI et dans des images de conteneurs. Cette version contenait un logiciel malveillant conçu pour voler des identifiants et charger des outils d’exécution de code à distance. En clair, le récit de l’entreprise commence par une clé exposée en mai, restée active, puis décrit son utilisation présumée pour obtenir un accès étendu aux dépôts avant la publication compromise. Il faut distinguer cette chronologie rapportée par LiteLLM du fait directement établi par l’entreprise : la version diffusée le 21 octobre était malveillante.
Victor
Comment l’attaquant a-t-il pu passer de cet accès aux dépôts à la publication d’un logiciel malveillant ?
Elias
Alors, avec le jeton obtenu par l’accès au compte propriétaire, l’attaquant aurait modifié des branches de dépôts internes afin de déclencher des workflows d’intégration continue et d’en extraire des secrets. LiteLLM indique que les actions rapportées lui auraient permis d’obtenir des jetons OAuth GitHub CLI associés à 2 ingénieurs ayant des droits de mainteneur. L’entreprise dit également que l’attaquant a obtenu des jetons pour plusieurs systèmes internes, en ciblant notamment des clés d’API d’inférence auprès de fournisseurs tiers. LiteLLM indique qu’elle révoque tous les jetons associés à ses systèmes internes et à ses plateformes fournisseurs. La chaîne décrite relie ainsi l’accès à la plateforme LiteLLM à l’extraction d’un jeton GitHub, puis à l’obtention d’autres secrets par des modifications de dépôts et des workflows. Ce mécanisme explique comment un premier identifiant disposant de droits étendus peut ouvrir la voie à d’autres accès, sans que cela signifie que tous les secrets présents dans les systèmes ont nécessairement été utilisés.
Victor
Quelles versions et quels utilisateurs sont concernés ?
Elias
Le périmètre identifié concerne la version 1.107.0 de LiteLLM, et non toutes les versions du projet. Les 7 paquets Python prêts à être installés ont été disponibles sur PyPI durant une période limitée le mercredi 21 octobre. Côté conteneurs, les tags v1.107.0, latest, main-latest et main-stable ont été associés à des images compromises sur Docker Hub et le registre de conteneurs de GitHub, appelé GHCR. Ces images ont été concernées entre 11 h 46 et 14 h 20 en temps universel coordonné, avec des différences selon les registres. LiteLLM affirme avoir retiré les artefacts concernés ou remplacé les images par des versions sûres. L’entreprise précise que les versions antérieures à 1.107.0 sont sûres et que son édition privée Enterprise n’a pas été touchée. Elle indique aussi que 3 comptes GitHub de développeurs ont été compromis, apparemment à l’aide de jetons OAuth GitHub CLI volés ; les jetons concernés ont été révoqués et l’accès à son organisation temporairement restreint. Le bilan disponible ne précise pas combien d’utilisateurs ont téléchargé ou exécuté les artefacts concernés.
Victor
Quelles sont les limites de ce que l’on sait, et que reste-t-il à établir pour les utilisateurs ?
Elias
Bon, il faut distinguer la publication malveillante de la chronologie des accès que LiteLLM décrit comme l’ayant précédée. L’entreprise affirme avoir terminé son enquête et présente son nouvel article comme la référence sur la séquence de l’attaque. Elle décrit une clé maîtresse publiée par erreur en mai et non révoquée, puis son utilisation présumée en octobre pour accéder à LiteLLM Agent Platform et obtenir un jeton GitHub donnant un accès de niveau propriétaire aux dépôts. L’attaquant aurait ensuite modifié des branches internes pour déclencher des workflows et extraire d’autres secrets, dont des jetons associés à 2 ingénieurs ayant des droits de mainteneur. LiteLLM indique aussi que des jetons de systèmes internes ont été visés, notamment des clés d’API d’inférence de fournisseurs tiers, et dit révoquer les jetons associés à ses systèmes et plateformes fournisseurs. Le fait établi par l’entreprise est que la version 1.107.0 publiée le 21 octobre contenait un logiciel malveillant conçu pour voler des identifiants et charger des outils d’exécution de code à distance. La chronologie publiée détaille les accès et les actions attribuées à l’attaquant, mais les étapes de cette intrusion sont rapportées par LiteLLM et certaines sont formulées au conditionnel. L’entreprise ne donne pas de bilan du nombre d’utilisateurs ayant téléchargé ou exécuté les paquets ou images concernés, ni de quantification des éventuels usages des identifiants volés. Il reste donc à distinguer le périmètre technique confirmé, les artefacts identifiés, des conséquences concrètes pour chaque organisation susceptible de les avoir utilisés.
Victor
Quel est le point essentiel à retenir pour les équipes qui utilisent LiteLLM ?
Elias
LiteLLM affirme que le problème concerne la version 1.107.0 et certaines images portant les tags cités, tandis que les versions antérieures et l’édition privée Enterprise n’ont pas été touchées. L’entreprise dit avoir retiré ou remplacé les artefacts concernés et révoquer les jetons associés à ses systèmes internes et aux plateformes de ses fournisseurs. Pour une équipe, le point concret est de vérifier si elle a utilisé cette version ou l’une de ces images, plutôt que de conclure que toutes les installations de LiteLLM sont concernées. Les paquets PyPI et les images de conteneurs ont été diffusés dans des fenêtres distinctes le mercredi 21 octobre. LiteLLM décrit une chaîne qui remonte à une clé maîtresse publiée par erreur en mai et non révoquée, puis à son utilisation présumée en octobre pour obtenir un jeton GitHub donnant un accès de niveau propriétaire. L’attaquant aurait ensuite utilisé des modifications de branches et des workflows internes pour extraire d’autres secrets, notamment des jetons de mainteneurs. L’entreprise dit révoquer les jetons associés à ses systèmes internes et à ses plateformes fournisseurs. Cette chronologie illustre comment un secret oublié peut servir de point d’entrée, puis permettre d’atteindre des accès plus larges et des mécanismes automatisés de publication. Mais le bilan disponible ne précise pas combien d’utilisateurs ont exécuté les artefacts concernés, ni ne chiffre les conséquences éventuelles pour eux. Le message essentiel est donc de vérifier les versions et les images effectivement utilisées, en tenant compte de la distinction faite par LiteLLM entre la version concernée, les versions antérieures et l’édition privée.
Victor
Merci Elias pour ces explications.
Une erreur ?
Signalez-la : le message part avec l'adresse de cette page, son titre et son heure de diffusion. Une personne mise en cause peut aussi exercer son droit de réponse.
Signaler une erreurUn mot pour la rédaction ?
Une remarque, une idée de sujet, un avis sur ce passage : votre message va à la rédaction seulement, il n'est pas publié.