Un nom de paquet familier, un code copié-collé presque conforme et une porte dérobée bien planquée : la recette est connue, elle fonctionne encore. Depuis novembre, une campagne de compromission de la chaîne d’approvisionnement logicielle traque les développeurs Python qui bâtissent des bots Telegram. Des paquets publiés sur PyPI se font passer pour des forks de Pyrogram, bibliothèque vedette de l’écosystème Telegram, mais embarquent un code malveillant offrant un accès distant au serveur infecté et la lecture de fichiers arbitraires.
Selon les recherches de Checkmarx, au moins huit versions ou paquets trojanisés ont circulé sur plusieurs mois. L’opération, baptisée Operation Navy Ghost par l’éditeur, a visé les mainteneurs et intégrateurs qui installent leurs dépendances depuis PyPI sans trop regarder ce qu’il y a sous le capot.
Points clés
- Au moins huit forks trojanisés de Pyrogram publiés sur PyPI entre novembre 2025 et juin 2026.
- La porte dérobée donne un accès distant et permet de lire des fichiers arbitraires via un canal Telegram de commande et contrôle.
- Certains paquets ont dépassé 15 000 téléchargements ; pyrogram-navy compte plus de 16 versions.
- Supprimer le paquet ne suffit pas : il faut révoquer les secrets exposés et traiter l’environnement comme compromis.
Des forks de Pyrogram comme cheval de Troie
Le mode opératoire ne réinvente rien : un nom proche d’un projet légitime, un dépôt qui recopie du code connu, puis une modification discrète qui greffe un mécanisme de contrôle à distance. Checkmarx liste les forks publiés sous les noms VLifeGram, VLife-Gram, kelragram, pyrogram-navy, sepgram, pyrogram-styled, pyrogram-zeeb et pyrogram-kelra.
Les versions malveillantes ont été repérées entre novembre 2025 et juin 2026. Le tableau de suivi de l’éditeur fait état de téléchargements allant de quelques centaines à plus de 15 000 pour certains paquets avant leur retrait. Le seul pyrogram-navy a été publié en plus de 16 versions successives, autant de fenêtres d’exposition rouvertes à chaque mise à jour.
« Chacun ressemblait à une variante légitime de Pyrogram mais cachait une porte dérobée qui donne à l’attaquant un contrôle distant total sur tout serveur exécutant le paquet infecté. »
Checkmarx, équipe de recherche Zero-Post
Lecture de fichiers, commande à distance et persistance
D’après BleepingComputer, le code injecté permet de lire des fichiers arbitraires sur les serveurs compromis. Checkmarx ajoute que la charge utile s’appuie sur un canal Telegram en guise d’interface de commande et de contrôle. Dans ce montage, l’attaquant reçoit des ordres, exfiltre des données et, selon les versions, conserve son accès.
Le scénario vire au cauchemar pour les serveurs hébergeant des bots Telegram en production. Ces environnements brassent des jetons d’accès, des clés API, des secrets d’application et des fichiers de configuration. Une fois le paquet installé ou importé, tout ce petit monde devient lisible par le code piégé.
Les paquets ont été retirés de PyPI après signalement. Le risque ne s’évapore pas pour autant : des copies peuvent subsister dans des dépôts internes, des caches de développeurs ou des artefacts déjà compilés dans des applications.
Ce qu’il faut vérifier maintenant
Première étape, identifier toute machine ayant installé l’un des paquets concernés entre novembre 2025 et juin 2026. Ensuite, traiter l’environnement comme compromis : supprimer le paquet ne garantit ni l’absence d’exfiltration ni la disparition d’une éventuelle persistance.
- Éplucher l’historique des installations Python et les fichiers de verrouillage.
- Comparer les dépendances internes avec les noms de paquets signalés par Checkmarx.
- Révoquer ou faire tourner les secrets exposés sur les serveurs touchés.
- Surveiller les logs réseau et les connexions sortantes vers Telegram ou des hôtes inconnus.
L’affaire s’ajoute à une longue série de campagnes PyPI qui détournent de faux paquets pour siphonner les secrets des développeurs. D’autres opérations ont déjà visé des bibliothèques de bots Telegram, des outils Solana ou des paquets d’IA et de data science, avec la même mécanique imperturbable : un nom crédible, un import vérolé, puis l’exfiltration dès le premier lancement.