Abstracte technische illustratie voor het artikel. Plat, vectorstijl-diagram op een diep marineblauwe achtergrond: links een kleine cluster gestileerde serverracks, getekend als eenvoudige lijniconen; rechts een netwerk van dunne cyaanblauwe en blauwe lijnen die vele kleine cirkelvormige knooppunten met elkaar verbinden. Boven de servers is een opengeslagen boek-icoon met twee vage balken die versregels voorstellen, via een enkele stippellijn verbonden met de cluster, wat een opzoekpad van een openbaar document naar een machineadres suggereert. In de illustratie komen geen tekst, geen cijfers en geen logo's voor; het OrcaRouter-logo is in de rechteronderhoek gecompositeerd.
AI Safety Incidents

Een botnet verborg zijn commandoserver in een GitHub-gedicht — en veranderde 3.400 blootgestelde AI-servers in miningproxy's

Auteur

Rowan Sterling

Publicatiedatum

Nieuwste modellen · 20Bekijk alle modellen →
Benchmarks: Artificial Analysis · dagelijks bijgewerkt
Terug naar alle berichten

Op 7 oktober 2026 publiceerde Black Lotus Labs van Lumen Technologies onderzoek naar een financieel gemotiveerde botnetcampagne die het volgt als Canto Incognito, waarvan het de malware PoeLLM noemde. De campagne heeft sinds ten minste april 2026 meer dan 3.400 servers die vanaf het internet bereikbaar zijn gecompromitteerd, geconcentreerd in de Verenigde Staten en West-Europa, volgens de onderzoekers — en de slachtoffers zijn geen willekeurige machines. Lumen zegt dat het voornamelijk kwetsbare implementaties van LiteLLM en Ollama betreft, plus honderden servers waarop de Gotenberg PDF-converter en de Gitea-ontwikkeltoolkit draaien, en ook Ivanti Sentry-apparaten vallen binnen het bereik. Eenmaal geïnfecteerd werden die servers gebruikt voor cryptomining en herbestemd als scanners en exploitservers — wat Ryan English van Black Lotus Labs in een interview met CyberScoop "een privéleger van AI-proxies" noemde. Hetzelfde leveranciersrapport werd gedeeld met The Hacker News, dat dezelfde dag een eigen artikel publiceerde.

Het detail dat dit record de moeite van het lezen waard maakt, is niet de schaal. Het is het command-and-controlontwerp: er is geen hardcoded domein en geen fallback-IP in de malware. Het adres van de huidige C2-server wordt tijdens runtime berekend uit vier woorden die uit een gedicht in een openbare GitHub-repository zijn gehaald. Pas het gedicht aan, en het hele botnet verplaatst zich.

Wat was er eigenlijk gecompromitteerd?

De slachtoffers, volgens het rapport van Lumen, zijn enterprise-AI- en ontwikkelaarsdiensten die vanaf het internet bereikbaar waren: LiteLLM- en Ollama-implementaties, honderden Gotenberg PDF-conversieservers en Gitea. Onderzoekers van Lumen schatten dat de campagne ook Ivanti Sentry trof. De belangrijkste scanobjectieven waren poorten 3000 en 4000, de standaard luisterpoorten voor respectievelijk Gotenberg en LiteLLM.

Twee kwetsbaarheden zijn van belang voor hoe de machines werden bereikt, en het rapport is zorgvuldig over beide:

• Ivanti Sentry, CVE-2026-10520. Lumen zegt dat zijn onderzoekers de PoeLLM-infrastructuur voor het eerst tegenkwamen tijdens het onderzoek naar deze kwetsbaarheid in Ivanti's beveiligde mobiele gateway. Begin juni 2026 nam een gecompromitteerd slachtoffer van Ivanti Sentry contact op met een toegewijde server op 5.78.73[.]122 en begon kort daarna te scannen naar andere kwetsbare apparaten. Let op het voorbehoud: Lumens eigen lijst met belangrijkste conclusies zegt dat de campagne "mogelijke targeting van Ivanti Sentry" heeft, terwijl de hoofdtekst van hetzelfde rapport het apparaat als een actief slachtoffer beschrijft. Die interne tegenstrijdigheid staat in de primaire bron.

• LiteLLM, CVE-2026-42271. Een door Lumen onderzocht PoeLLM-sample richtte zich op het LiteLLM-endpoint "/mcp-rest/test/connection", waarvan Lumen zegt dat het "waarschijnlijk het exploitatietraject was" voor een command-injectiekwetsbaarheid in LiteLLM die is geïdentificeerd als CVE-2026-42271. Het rapport van CyberScoop beschrijft hetzelfde toegangspunt als een defect met maximale ernst in Ivanti Sentry zonder een CVE te noemen, en behandelt de LiteLLM-fout niet; The Hacker News noemt geen van beide CVE's. De fout in het LiteLLM MCP-endpoint is degene die dit archief eerder in 2026 registreerde, voordat deze campagne werd gedocumenteerd

Wat de gestolen toegang de operator opleverde, was rekenkracht en data. "Blootgestelde AI/LLM-diensten zijn waardevol, niet alleen vanwege softwarekwetsbaarheden, maar ook omdat ze nuttige data kunnen bevatten en draaien op krachtige hardware die geschikt is voor mining," schreef Lumen. English vertelde CyberScoop dat de malware ook functionaliteit voor remote code execution bevat die zou kunnen toelaten dat een operator de AI-modellen misbruikt die op de servers van slachtoffers draaien — genoemd als een mogelijkheid, niet als een waargenomen resultaat.

Het gedicht dat ook een opzoektabel is

De GitHub-account in kwestie is "ejejejdfbbebe," en de repository is een fork van de bron van de nodejs.org-website die geen duidelijke band met Node.js zelf heeft. Daarin plaatste de operator, in een bestand met de naam "dash.css" — een bestandsnaam die niet in de originele repository bestaat — een tweestrofig gedicht met de titel "Over de aard van verbinding." Lumen telde 11 updates sinds de eerste commit op 13 april 2026; CyberScoop meldt dat de bewoording "ten minste een dozijn keer" is gewijzigd.

Zoals vastgelegd door Lumen in september 2026, luidde het eerste couplet: "In de stille zoem van de driver, beginnen de machines te spreken, elke puls van een diode die licht door koperen aderen weeft. We leerden het donker betekenis te dragen, byte voor byte — een taal gebouwd uit bliksem, koud en schoon." Het tweede couplet bevat de regel "Voorbij de muur van encryptie vindt een signaal zijn weg, het tikken van verre servers antwoordt terug."

A screenshot of a technical explainer card titled 'Four words from a poem, read as a number'. The left column is headed 'Extracted from the verse' and quotes two lines of the poem with four words highlighted: driver, diode, encryption and distant servers. A note below explains that the fourth word is recovered by searching for the string 'of distant servers', stepping back to the previous whitespace and requiring the four bytes before the word to spell 'the '. The right column is headed 'Matched in a hard-coded dictionary' and lists four mappings: driver equals 92, diode equals 119, decryption equals 165, string equals 74. A result box at the bottom reads 'C2 address 92.119.165[.]74'. A footer reads 'Extraction logic and conversion key per Lumen Black Lotus Labs; worked example from a sample recovered June 23, 2026. Card rendered by OrcaRouter.'

De extractie is mechanisch. Een functie die Lumen noemt — extract_poem_phrase_field — haalt drie zinsdelen uit vaste posities in het vers — de tekst tussen "In the silent hum of " en de volgende komma, tussen "each pulse of " en " threading," en tussen "Beyond the wall of " en de volgende komma. Een vierde woord wordt op een andere manier achterhaald, door te zoeken naar de tekenreeks "of distant servers,", terug te lopen naar de vorige witruimte, te controleren of de vier voorafgaande bytes "the " spellen, en het woord erna te nemen. Elk van de vier woorden wordt vervolgens vergeleken met een hardgecodeerd woordenboek dat in het binaire bestand is gecompileerd, en de vier resulterende getallen worden aaneengeschakeld tot een IPv4-adres. In een voorbeeld dat Lumen op 23 juni 2026 achterhaalde, werd "driver" aan 92 toegewezen, "diode" aan 119, "decryption" aan 165 en "string" aan 74 — wat 92.119.165[.]74 oplevert.

Omdat gedurende de 11 waargenomen revisies alleen de vier trefwoorden ooit veranderden, en het decodeerpatroon nooit, kostte het verplaatsen van het botnet de operator een handvol aanpassingen in een openbaar tekstbestand. "Het meest interessante aan de gedichtaanpak is dat het IP-adres dat voor C2-communicatie wordt gebruikt, onzichtbaar is buiten de netflow van het slachtoffer," vertelde English aan CyberScoop. "Voor iedereen die het tegenkomt, is dit simpelweg een gedicht op GitHub. Het bevat geen links, geen bestanden om te downloaden, geen versleutelde tekst die gemakkelijk als kwaadaardig kan worden gemarkeerd, zelfs niet door geavanceerde modellen. Er zou voor geen enkele beveiligingsonderzoeker een reden zijn om dit gedicht als kwaadaardig aan te merken — of om het erin verborgen IP-adres te kennen — tenzij die toegang had tot de malware die ernaar verwijst."

Lumen zegt dat het gelooft dat het gedicht waarschijnlijk door een AI is geschreven, en bestempelt dat als een gevolgtrekking, niet als een bevinding. De redenering, in de woorden van English tegen The Hacker News: het gedicht zou in elke taal hebben gewerkt, maar de eigen voorkeur van de actor lijkt Italiaans te zijn. Het is een oordeel over schrijfstijl, niet een forensische toeschrijving van de tekst aan een model.

Wat de malware doet zodra deze binnenkomt

De payload die Lumen heeft geanalyseerd, is een ELF-bestand dat wordt verspreid onder de naam "libgcrypt", met de SHA-256-hash 6b94577364be314afae3b082dd680933f08a8349b9f35b92667e8231b501. Volgens de analyse van Lumen omvat het een remote shell, de Iron- en XMRig-cryptominers, HTTP- en HTTPS-scanmogelijkheden en het inzetten van exploits tegen kwetsbare doelen.

Geïnfecteerde hosts sturen bakens terug naar een van meerdere C2-poorten — 3778, 5001, 5002 of 9999 — en krijgen de instructie om aanvullende bestanden te downloaden vanaf poort 81 op de C2-server (waargenomen paden waren onder meer /private/python3.6 en /private/bins.sh). Mining-uitbetalingen gaan naar de Russische miningdienst Kryptex: Lumen zag slachtoffers contact opnemen met 5.180.174[.]162:8029 en 46.21.245[.]211:7029, waarop edge-ru-07[.]kryptex[.]network wordt gehost. Het meest voorkomende gemeenschappelijke kenmerk van de eerste 900 slachtoffers, na contact met de initiële C2, was contact met dat Kryptex-endpoint.

Het botnet breidt zichzelf ook uit. Gecompromitteerde servers werden omgevormd tot scanners en exploitservers: een exploitserver stuurt een zorgvuldig samengestelde HTTP POST naar een blootgestelde service op een nieuw gevonden doelwit, met de instructie om de malware vanaf de C2 te downloaden. Meer recent zag Lumen groepen slachtoffers die SSH-poorten en andere inlogportalen aanvielen, wat het interpreteert als mogelijke experimenten met een gedistribueerd brute-force-framework. Lumen bestempelt dat expliciet als onvolwassen en onbewezen: veel van de doelwitten waren dedicated servers in Italië, en de onderzoekers schatten in dat de capaciteit "zich mogelijk in een vroeg stadium van ontwikkeling bevond."

De tijdlijn en de twee getallen die niet overeenkomen

A screenshot of a timeline card titled 'How the campaign unfolded, April to October 2026', subtitled 'Active since at least April 2026; disclosed 7 October 2026 by Lumen Black Lotus Labs'. The entries read: 'APR 13, 2026 — First commit to the GitHub repository. First decoded C2 is 191.37.28.160, a router in Brazil.' 'APR 13, +1 HOUR — That C2 contacts 57.131.5.211:80 in Italy, hosting malwarescan[.]xyz (registered February 2026).' 'MAY 2026 — Broader scanning and exploitation begins, especially against LiteLLM and Gotenberg. New C2 at 120.224.114.212, geolocated to China.' 'EARLY JUNE 2026 — A compromised Ivanti Sentry victim contacts 5.78.73.122, then begins scanning for other vulnerable devices.' 'MID-JUNE 2026 — Peak of operations: almost 2,200 affected servers, with nearly 800 active per day.' 'JUNE – SEP 2026 — The poem is revised 11 times; each revision points the botnet at a new C2. 12 C2 addresses identified in total.' 'OCT 7, 2026 — Lumen publishes. The staging repository is no longer accessible and the C2s are null-routed; three C2s were still active at publication.' A footer reads 'Dates and figures per Lumen Black Lotus Labs, published Oct 7, 2026. Card rendered by OrcaRouter.'

De eerste gedecodeerde C2 van de campagne was 191.37.28[.]160, een Braziliaanse router met een blootgestelde Boa-webserver op poort 2222 die kwetsbaar was voor CVE-2018-21027 en CVE-2018-21028 — hoewel Lumen geen direct bewijs vond dat die kwetsbaarheden het toegangspad vormden. Ongeveer een uur na de eerste GitHub-commit nam die C2 contact op met een server in Italië op 57.131.5[.]211:80 waarop het domein malwarescan[.]xyz werd gehost, dat in februari 2026 was geregistreerd. Lumen zegt geen ander noemenswaardig verkeer naar het API-eindpunt van dat domein te hebben gezien en schat in dat het domein eigendom kan zijn van de PoeLLM-operator. Een herziening in mei verplaatste de C2 naar 120.224.114[.]212, gelokaliseerd in China en, net als de Braziliaanse host, met een kwetsbare Boa-webserver met een routerbeheerpagina. In totaal identificeerde Lumen 12 C2-IP-adressen; drie waren nog actief bij publicatie — 92.119.164.50 (voor het eerst gezien op 23 juli 2026), 103.249.201.108 (voor het eerst gezien op 13 augustus 2026) en 178.128.14.204 (voor het eerst gezien op 16 juni 2026).

A screenshot of a comparison card titled 'Three figures and how they relate', subtitled 'Peak and cumulative counts are not the same measurement, and the report states both.' Three panels sit side by side. The first, headed 'Key takeaways, Lumen Black Lotus Labs, Oct 7, 2026', shows the figure 3,400+ with the caption 'victim servers impacted, and peak activity exceeding 800 active servers per day.' The second, headed 'Body paragraph, same report', shows the figure ~2,200 with the caption 'victim servers impacted since the malware emerged in April, at a peak of almost 800 active per day.' The third, headed 'Mid-June peak, same report', shows the figure ~2,200 with the caption 'affected servers at the peak of operations, with nearly 800 active each day.' A note below reads 'Which of the two impacted-server figures is the cumulative count is not made explicit in the report. The archive's confidence grade covers the documentation, not the reconciliation of these numbers. Card rendered by OrcaRouter.'

Lumen noemt ook een vermoede managementserver: 185.119.19[.]171 in Italië, die eerder Prometheus- en Uptime Kuma-monitoringdashboards hostte, waarmee meerdere C2's contact opnamen. In het rapport wordt deze attributie met matige zekerheid gesteld.

Qua schaal bevat de primaire bron twee cijfers die niet duidelijk met elkaar te rijmen zijn, en beide zijn het vermelden waard. In de belangrijkste conclusies van Lumen staat dat PoeLLM "meer dan 3.400 getroffen servers heeft gehad." Een alinea in de hoofdtekst van hetzelfde rapport zegt dat de campagne "bijna 2.200 getroffen servers heeft gehad", en Lumen beschrijft afzonderlijk de piek van de activiteiten medio juni als bijna 2.200 getroffen servers, met bijna 800 die dagelijks actief waren. The Hacker News interpreteert de cijfers als het lopende totaal (meer dan 3.400) plus de piek medio juni (bijna 2.200, bijna 800 per dag). Welk van de twee Lumen-cijfers het cumulatieve aantal slachtoffers is, wordt in het rapport zelf niet expliciet gemaakt.

Vastgesteld, beoordeeld en nog onbekend

Het is de moeite waard om in dit dossier drie soorten claims te onderscheiden, omdat de betrouwbaarheidsgraad van het archief geldt voor de documentatie, niet voor elke gevolgtrekking erin.

• Vastgesteld op basis van de malware zelf: het op gedichten gebaseerde C2-mechanisme, de extractiefunctie en het woordenboek, de mogelijkheden van de payload (remote shell, Iron- en XMRig-miners, scanning, exploit-implementatie), de C2-IP-lijst, beacon-poorten en de Kryptex-endpoints. Deze zijn afkomstig uit artefactanalyse en netflow, en vormen het grootste deel van het rapport.

• Beoordeeld op een aangegeven zekerheidsniveau: toeschrijving aan een Italiaanssprekende dreigingsactor, met matige zekerheid, op basis van Italiaanstalige opmerkingen in de malware en op de GitHub-pagina's van de actor plus netflow-indicatoren die naar Italië wijzen. De Italiaanse server 185.119.19[.]171 als de beheerinterface van het botnet, eveneens met matige zekerheid. Het LiteLLM-endpoint als het "waarschijnlijke" uitbuitingspad. De bewering dat het gedicht waarschijnlijk door AI is geschreven — een gevolgtrekking op basis van taalvoorkeur, niet een technische bevinding.

• Open of onbevestigd:hoeveel mensen de campagne runnen (onbekend), of deze verband houdt met een andere groep of campagne (geen waargenomen), of het Ivanti Sentry-apparaat een geëxploiteerd toegangspunt was of incidenteel (voorzichtig geformuleerd in de belangrijkste conclusies, in de hoofdtekst beschreven als slachtoffer), en hoe volwassen de gedistribueerde brute-forcecapaciteit is. Lumen zegt dat wat de operator naast scanning en cryptomining heeft bereikt, nog wordt onderzocht.

Voor de berichtgeving bestaat onafhankelijke bevestiging, maar niet voor de telemetrie erachter. CyberScoop en The Hacker News publiceerden beide hun eigen verslagen op 7 oktober 2026, met onafhankelijke interviews met Black Lotus Labs, en hun details — het cijfer van meer dan 3.400, het gedichtmechanisme, de Italiaanstalige attributie, de Kryptex-link — komen overeen met het leveranciersrapport. Beide zijn echter terug te voeren op hetzelfde primaire onderzoek. Op 10 oktober 2026 heeft geen tweede onderzoeksorganisatie of toezichthouder een onafhankelijke analyse van PoeLLM gepubliceerd, dus niets hierin moet worden opgevat als gereproduceerd door een andere partij dan Lumen.

Wat veranderde er na de openbaarmaking

De meest verstrekkende reactie kwam niet van een patch. De GitHub-repository die het gedicht host, "is niet langer toegankelijk", een ontwikkeling waarvan Lumen zegt dat die "de campagne volledig ontwricht". English vertelde aan The Hacker News: "We denken dat dat zijn enige repo was, en die is volledig verstoord." Lumen had GitHub op de hoogte gesteld en null-routete de eerdere en actieve C2-servers van de actor, een wijziging waarvan English zei dat die vroeg in de nacht van dinsdag op woensdag voorafgaand aan de publicatie inging. De oorzaak van het verwijderen van de repository is niet bevestigd — English vertelde aan The Hacker News dat het "kan zijn dat ze het voor misbruik hebben gemarkeerd, of dat de actor de boel heeft opgedoekt en stil is geworden op dat platform." Omdat de C2 niet hardgecodeerd maar afgeleid was, neemt het verwijderen van de opzoektabel het botnet de mogelijkheid af om zijn eigen infrastructuur te vinden.

Lumen zegt dat het tijdens het onderzoek al het verkeer van en naar de PoeLLM C2-servers heeft geblokkeerd en dat klanten van Lumen Defender vanaf de ontdekking tegen die servers beschermd waren. De richtlijnen die het voor verdedigers heeft gepubliceerd, zijn routinehygiëne toegepast op een ongebruikelijke set doelwitten: controleer netwerklogboeken aan de hand van de indicatoren van compromittering die het in zijn eigen GitHub-repository heeft gepubliceerd, voer een audit uit naar externe blootstelling nadat open-sourcehulpmiddelen zijn geïnstalleerd, beperk servicepoorten zoveel mogelijk, houd routers, firewalls en IoT-apparaten gepatcht en herstart, en breng AI-diensten binnen attack-surfacemanagement. Het wijst ook op de Gotenberg-installatiegids, die gebruikers al waarschuwt de dienst niet aan het internet bloot te stellen — een waarschuwing die kennelijk pas na de honderden gecompromitteerde Gotenberg-servers kwam.

Niets in het dossier wijst op een technische oplossing voor het verkeerspatroon zelf: het gedicht was geen kwetsbaarheid in GitHub, Node.js, LiteLLM of Ollama. Het was een openbaar tekstbestand waarvan de enige betekenis in een binair bestand zat dat maar heel weinig mensen hadden.

Waarom dit een AI-incidentrecord is

Het archief legt dit vast als een incident met bevestigde AI-betrokkenheid, getagd als INFRA en WEAPON, ernst: hoog, met geregistreerde daadwerkelijke schade — en die schade is concreet in plaats van speculatief: duizenden servers die vanaf internet bereikbaar zijn, waarvan de rekenkracht is gestolen en de toegang een ander doel kreeg, in een campagne die Lumen omschrijft als financieel gemotiveerd in plaats van gericht op de modellen zelf. Het AI-element is de doelwitselectie. Servers waarop LLM-gateways en lokale modelruntimes draaien, worden zelf gehost, zijn vaak vanaf internet bereikbaar, worden vaak geïnstalleerd zonder patchcyclus en staan op hardware die efficiënt kan minen. Lumen zelf formuleert het zo: AI-infrastructuur wordt juist vanwege die combinatie een aantrekkelijk doelwit — blootgestelde diensten met bekende kwetsbaarheden, nuttige data en snelle, energiehongerige hardware.

De invalshoek van het wapen is het C2-ontwerp, en dat gaat verder dan deze campagne. Een hardcoded domein of IP kan worden geblokkeerd, naar een sinkhole worden geleid of worden gebruikt om malware te fingerprinten. Een afgeleid adres waarvan het enige artefact een onschuldig ogend openbaar document is, kan dat niet, tenzij een analist het binaire bestand heeft. Het punt dat English tegen CyberScoop maakte — dat veel van de C2's van de campagne nooit op crowd-sourced beveiligingstooling verschenen — is de maatstaf voor hoe goed dat werkte.

Omdat de verstoring berust op een enkele repository in plaats van op een gepatchte kwetsbaarheid, is de status van de campagne na 7 oktober werkelijk onzeker in plaats van gesloten: Lumen zegt dat het verlies van de repository de campagne "volledig verstoort", en zegt daarnaast dat drie C2-servers nog actief waren op het moment van publicatie. Lumen publiceert zijn eigen indicatoren van compromittering op een eigen GitHub-repository, en de ernst, het betrouwbaarheidsniveau en de geregistreerde schade van het record zijn die van het archief, niet die van de leverancier.

Dit is één record. De rest ervan — de andere onthullingen, hun ernst- en betrouwbaarheidsgraden, en wat verdedigers er daadwerkelijk aan deden — het AI-incidentenarchief indexeert elk daarvan met verwijzing naar de bijbehorende primaire bronnen, zodat een campagne als deze naast de incidenten die eraan voorafgingen kan worden gelezen in plaats van op zichzelf.