Le botnet PoeLLM cache son adresse C2 dans un poème GitHub

Le botnet PoeLLM cache son adresse C2 dans un poème GitHub

Un botnet de minage de cryptomonnaie qui s'introduit dans des serveurs d'IA exposés trouve son infrastructure de commande et de contrôle (C2) en lisant un poème hébergé sur GitHub, selon les chercheurs de Black Lotus Labs.

Les chercheurs ont baptisé le logiciel malveillant PoeLLM. Il a compromis plus de 3 400 serveurs depuis avril 2026, pour la plupart aux États-Unis et en Europe de l'Ouest. Black Lotus Labs suit cette activité sous le nom de Canto Incognito. Il attribue la campagne à un acteur malveillant italophone qui semble motivé par l'appât du gain.

Les services d'IA dans le viseur

La plupart des machines infectées font tourner des versions vulnérables de services open source d'IA et de grands modèles de langage (LLM) comme LiteLLM et Ollama. Le logiciel malveillant a aussi touché des centaines de serveurs exécutant Gotenberg, un convertisseur PDF open source, et Gitea, une boîte à outils de développement logiciel.

D'après les chercheurs, les attaquants ont deux raisons de cibler les serveurs qui hébergent des déploiements d'IA ou de LLM. Ces serveurs peuvent constituer une source de renseignements. Ce sont aussi des services autohébergés, exposés sur Internet et présentant des vulnérabilités connues.

Une piste Ivanti

Black Lotus Labs a découvert PoeLLM en enquêtant sur CVE-2026-10520, une vulnérabilité d'Ivanti Sentry. Début juin 2026, un équipement Ivanti Sentry compromis a contacté un serveur dédié à l'adresse 5.78.73[.]122. Peu après, il a commencé à rechercher d'autres systèmes vulnérables.

La télémétrie de l'équipe a montré que le premier commit GitHub contenant le poème remontait au 13 avril. Les premiers échanges avec le premier C2 connu laissaient penser que l'opérateur avait brièvement testé des infections et des téléchargements de charges utiles.

À partir de mai, l'attaquant a balayé Internet principalement à la recherche des ports 3000 et 4000, les ports par défaut de Gotenberg et de LiteLLM. Lorsqu'un scan repérait un serveur vulnérable, un serveur d'exploitation lui envoyait une requête POST forgée lui ordonnant de télécharger un fichier depuis le C2. Dans l'échantillon analysé par les chercheurs, le point de terminaison LiteLLM ciblé (/mcp-rest/test/connection) est mentionné dans CVE-2026-42271, une faille d'injection de commandes dans LiteLLM.

Quatre mots, une adresse IP

Le poème s'intitule "On the Nature of Connection". Il se trouve dans un fichier nommé dash.css, au sein d'un dépôt GitHub créé par un utilisateur appelé "ejejejdfbbebe". Le dépôt est un fork du code source du site nodejs.org, bien que le logiciel malveillant n'ait aucun lien avec Node.js.

PoeLLM extrait quatre mots situés à des positions fixes dans le poème. Il recherche chacun d'eux dans un dictionnaire codé en dur dans le logiciel malveillant, qui lui associe un nombre. Les quatre nombres forment l'adresse IPv4 du serveur C2 en cours. Dans une version antérieure du poème, les mots "driver", "diode", "decryption" et "string" correspondaient à 92, 119, 165 et 74. Les bots étaient ainsi dirigés vers 92.119.165.74.

Pour déplacer le botnet vers un nouveau serveur, l'opérateur n'a qu'à remplacer ces quatre mots dans le dépôt. Les machines infectées calculent ensuite d'elles-mêmes la nouvelle adresse. Le poème a été modifié 11 fois depuis le premier commit, et chaque modification a redirigé les victimes vers un serveur différent.

"Au moment de la rédaction, le créateur du logiciel malveillant n'a pas changé le schéma utilisé pour déchiffrer le poème. Seuls les mots-clés ont changé au fil des 11 versions que nous avons observées", ont souligné les chercheurs.

Miner, puis se propager

Une fois installé, PoeLLM lance les mineurs de cryptomonnaie XMRig et Iron et connecte les victimes au pool de minage russe Kryptex. Il intègre aussi un shell distant, des fonctions de scan HTTP/S et de déploiement d'exploits. Le botnet s'étend en mettant les serveurs infectés à contribution pour rechercher et exploiter de nouvelles cibles.

Plus récemment, des groupes de bots ont commencé à viser les ports SSH et d'autres portails de connexion. Selon les chercheurs, cela suggère que l'opérateur pourrait expérimenter des attaques par force brute distribuées. Cette capacité semble en être à un stade précoce de développement.

Black Lotus Labs indique avoir bloqué le trafic à destination et en provenance des serveurs C2 de PoeLLM et continuera de surveiller l'apparition de nouveau trafic.

"Les retards dans la mise à jour des outils d'IA et d'entreprise exposés sur Internet ouvrent un accès hautement privilégié", ont écrit les chercheurs. Ils ont ajouté que les outils d'IA doivent être intégrés à la gestion de la surface d'attaque et aux cycles de correctifs. Selon eux, cela protège contre l'abus de jetons et le cryptominage, et surtout contre la perte de données, le détournement de LLM et les déplacements latéraux.

Notre analyse

L'astuce du poème est ingénieuse, mais le problème de fond est bien connu. Les organisations déploient des services d'IA autohébergés plus vite qu'elles ne les corrigent. PoeLLM n'a pas eu besoin d'une faille zero-day. Il a balayé des ports par défaut et exploité des failles connues dans des outils comme LiteLLM. Cela s'inscrit dans une tendance plus large où l'infrastructure d'IA devient une surface d'attaque à part entière, des failles dans les composants de passerelles d'IA aux enquêtes montrant que les attaques contre les systèmes d'IA figurent parmi les plus grosses lacunes de préparation des entreprises.

Cacher des données de C2 sur GitHub montre aussi à quel point les attaquants s'appuient sur des plateformes de confiance que les défenseurs bloquent rarement. Des campagnes récentes comme les dépôts malveillants de FakeGit vont dans le même sens. Comme le schéma de décodage n'a pas changé en 11 modifications, les défenseurs disposent pour l'instant d'un moyen fiable de suivre l'opérateur. Reste à voir s'il modifiera le procédé maintenant qu'il est rendu public, et si les premières tentatives de force brute déboucheront sur quelque chose de plus sérieux. Les équipes qui utilisent LiteLLM, Ollama, Gotenberg ou Gitea doivent vérifier dès maintenant leur exposition et leur niveau de correctifs.