PoeLLM-botnet verbergt C2-adres in gedicht op GitHub

PoeLLM-botnet verbergt C2-adres in gedicht op GitHub

Een cryptominingbotnet dat binnendringt op slecht afgeschermde AI-servers, vindt zijn command-and-control-infrastructuur (C2) door een gedicht op GitHub te lezen. Dat melden onderzoekers van Black Lotus Labs.

De onderzoekers hebben de malware PoeLLM genoemd. Sinds april 2026 zijn er meer dan 3.400 servers mee gecompromitteerd, de meeste in de VS en West-Europa. Black Lotus Labs volgt de activiteit onder de naam Canto Incognito. De campagne wordt toegeschreven aan een Italiaanstalige aanvaller die het vermoedelijk om geld te doen is.

AI-diensten in het vizier

De meeste geïnfecteerde machines draaien kwetsbare versies van opensource-AI-diensten en diensten voor grote taalmodellen (LLM's), zoals LiteLLM en Ollama. Daarnaast trof de malware honderden servers met Gotenberg, een opensource-pdf-converter, en Gitea, een toolkit voor softwareontwikkeling.

Volgens de onderzoekers hebben aanvallers twee redenen om het op servers met AI/LLM-toepassingen te gemunt te hebben. Zulke servers kunnen een bron van informatie zijn. Bovendien gaat het om zelfgehoste diensten die vanaf het internet bereikbaar zijn en bekende kwetsbaarheden hebben.

Een spoor via Ivanti

Black Lotus Labs stuitte op PoeLLM tijdens onderzoek naar CVE-2026-10520, een kwetsbaarheid in Ivanti Sentry. Begin juni 2026 legde een gecompromitteerd Ivanti Sentry-apparaat contact met een dedicated server op 5.78.73[.]122. Kort daarna begon het te scannen naar andere kwetsbare systemen.

Uit de telemetrie van het team bleek dat de eerste GitHub-commit met het gedicht op 13 april werd gedaan. Vroeg verkeer van de eerste bekende C2 wees erop dat de operator kortstondig infecties en het downloaden van payloads testte.

Vanaf mei scande de aanvaller het internet vooral op poorten 3000 en 4000, de standaardpoorten van Gotenberg en LiteLLM. Vond een scan een kwetsbare server, dan stuurde een exploitserver er een speciaal geprepareerd POST-verzoek naartoe met de opdracht een bestand van de C2 te downloaden. In het sample dat de onderzoekers analyseerden, wordt het aangevallen LiteLLM-endpoint (/mcp-rest/test/connection) genoemd in CVE-2026-42271, een command-injectionlek in LiteLLM.

Vier woorden, één IP-adres

Het gedicht heet "On the Nature of Connection". Het staat in een bestand met de naam dash.css in een GitHub-repository die is aangemaakt door een gebruiker die zich "ejejejdfbbebe" noemt. De repository is een fork van de broncode van de website nodejs.org, hoewel de malware niets met Node.js te maken heeft.

PoeLLM haalt vier woorden van vaste posities uit het gedicht. Elk woord wordt opgezocht in een woordenlijst die hard in de malware is gecodeerd en die het woord aan een getal koppelt. De vier getallen vormen samen het IPv4-adres van de actuele C2-server. In een eerdere versie van het gedicht werden de woorden "driver", "diode", "decryption" en "string" vertaald naar 92, 119, 165 en 74. Zo werden de bots naar 92.119.165.74 gestuurd.

Om het botnet naar een nieuwe server te verhuizen, hoeft de operator alleen die vier woorden in de repository te vervangen. Geïnfecteerde machines berekenen het nieuwe adres dan zelf. Sinds de eerste commit is het gedicht 11 keer aangepast, en elke wijziging leidde de slachtoffers naar een andere server.

"Op het moment van schrijven heeft de maker van de malware het patroon voor het ontcijferen van het gedicht niet veranderd. In de 11 versies die we hebben gezien, zijn alleen de sleutelwoorden gewijzigd", aldus de onderzoekers.

Eerst minen, dan verspreiden

Na installatie draait PoeLLM de cryptominers XMRig en Iron en verbindt het slachtoffers met de Russische miningpool Kryptex. De malware bevat ook een remote shell, HTTP/S-scanning en functies om exploits uit te rollen. Het botnet groeit doordat geïnfecteerde servers aan het werk worden gezet om nieuwe doelwitten op te sporen en aan te vallen.

Sinds kort richten groepen bots zich ook op SSH-poorten en andere inlogportalen. Volgens de onderzoekers wijst dat erop dat de operator mogelijk experimenteert met gedistribueerde brute-force-aanvallen. Die functionaliteit lijkt nog in een vroeg ontwikkelingsstadium te zitten.

Black Lotus Labs zegt verkeer van en naar de C2-servers van PoeLLM te hebben geblokkeerd en in de gaten te blijven houden of er nieuw verkeer opduikt.

"Vertraging bij het updaten van AI- en bedrijfstools die aan het internet hangen, levert zeer vertrouwde toegang op", schreven de onderzoekers. Ze voegden eraan toe dat AI-tools moeten worden meegenomen in het beheer van het aanvalsoppervlak en in patchcycli. Volgens hen beschermt dat tegen misbruik van tokens en cryptomining, en belangrijker nog tegen dataverlies, LLM-jacking en laterale beweging.

Onze kijk

De truc met het gedicht is slim, maar het onderliggende probleem is bekend. Organisaties zetten sneller zelfgehoste AI-diensten op dan dat ze die patchen. PoeLLM had geen zero-day nodig. Het scande standaardpoorten en misbruikte bekende lekken in tools als LiteLLM. Dat past in een breder patroon waarin AI-infrastructuur een volwaardig aanvalsoppervlak wordt, van lekken in AI-gatewaycomponenten tot onderzoeksresultaten waaruit blijkt dat aanvallen op AI-systemen tot de grootste blinde vlekken in de paraatheid van bedrijven horen.

Het verstoppen van C2-gegevens op GitHub laat ook zien hoe aanvallers leunen op vertrouwde platforms die verdedigers zelden blokkeren. Recente campagnes zoals de kwaadaardige repositories van FakeGit wijzen dezelfde kant op. Omdat het decoderingspatroon in 11 aanpassingen hetzelfde is gebleven, hebben verdedigers op dit moment een betrouwbare manier om de operator te volgen. Het is de moeite waard om te kijken of de operator het systeem aanpast nu het openbaar is, en of de prille brute-force-activiteit uitgroeit tot iets ernstigers. Teams die LiteLLM, Ollama, Gotenberg of Gitea draaien, doen er goed aan nu meteen te controleren hoe zichtbaar hun systemen zijn en hoe het met hun patchniveau staat.