Abstrakt teknisk illustration för artikeln. Platt diagram i vektorstil på en djupt marinblå bakgrund: till vänster en liten grupp stiliserade serverrack ritade som enkla linjeikoner; till höger ett nätverk av tunna cyan- och blå linjer som länkar samman många små cirkulära noder. Ovanför servrarna finns en ikon med en öppen bok med två svaga streck som föreställer versrader, förbunden med gruppen genom en enda streckad linje, vilket antyder en uppslagsväg från ett offentligt dokument till en maskinadress. Ingen text, inga siffror och inga logotyper förekommer i illustrationen; OrcaRouter-logotypen är inkomponerad i det nedre högra hörnet.
AI Safety Incidents

Ett botnät gömde sin kommandoserver i en GitHub-dikt – och förvandlade 3 400 exponerade AI-servrar till mining-proxyer

Författare

Rowan Sterling

Publiceringsdatum

Senaste modellerna · 20Visa alla modeller →
Benchmarks: Artificial Analysis · uppdateras dagligen
Tillbaka till alla inlägg

Den 7 oktober 2026 publicerade Lumen Technologies Black Lotus Labs forskning om en ekonomiskt motiverad botnetkampanj som de spårar som Canto Incognito, vars skadliga program de döpte till PoeLLM. Kampanjen har komprometterat fler än 3 400 internetexponerade servrar sedan åtminstone april 2026, koncentrerade till USA och Västeuropa, enligt forskarna – och offren är inte slumpmässiga maskiner. Lumen säger att de till övervägande del är sårbara driftsättningar av LiteLLM och Ollama, plus hundratals servrar som kör Gotenberg PDF-konverteraren och utvecklingsverktyget Gitea, där även Ivanti Sentry-apparater omfattas. När de väl infekterats användes servrarna för att utvinna kryptovaluta och gjordes om till skannrar och exploateringsservrar – vad Ryan English på Black Lotus Labs i en intervju med CyberScoop kallade "en privat armé av AI-aktiverade proxyservrar". Samma leverantörsrapport delades med The Hacker News, som publicerade sin egen redogörelse samma dag.

Detaljen som gör att den här posten är värd att läsa är inte omfattningen. Det är designen för kommando och kontroll: det finns ingen hårdkodad domän och ingen reserv-IP i malwaret. Adressen till den aktuella C2-servern beräknas vid körning utifrån fyra ord som hämtats ur en dikt som ligger i ett offentligt GitHub-repositorium. Ändra i dikten, så flyttar hela botnätet på sig.

Vad var det egentligen som komprometterades?

Offren, enligt Lumens rapport, är företags-AI- och utvecklartjänster som var åtkomliga från internet: distributioner av LiteLLM och Ollama, hundratals Gotenberg-servrar för PDF-konvertering och Gitea. Lumens forskare bedömde att kampanjen också berörde Ivanti Sentry. De primära skanningsmålen var portarna 3000 och 4000, standardlyssningsportarna för Gotenberg respektive LiteLLM.

Två sårbarheter har betydelse för hur maskinerna nåddes, och rapporten är noga med båda:

• Ivanti Sentry, CVE-2026-10520. Lumen säger att deras forskare först stötte på PoeLLM-infrastrukturen när de undersökte denna sårbarhet i Ivantis säkra mobila gateway. I början av juni 2026 kontaktade ett komprometterat Ivanti Sentry-offer en dedikerad server på 5.78.73[.]122 och började kort därefter skanna efter andra sårbara enheter. Notera förbehållet: Lumens egen lista över viktiga slutsatser säger att kampanjen har "möjlig målinriktning mot Ivanti Sentry", medan brödtexten i samma rapport beskriver apparaten som ett aktivt offer. Denna interna diskrepans finns i primärkällan.

• LiteLLM, CVE-2026-42271. Ett PoeLLM-prov som Lumen undersökte riktade sig mot LiteLLM-slutpunkten "/mcp-rest/test/connection," vilken Lumen säger "var sannolikt exploateringsvägen" för en kommandoinjektionssårbarhet i LiteLLM identifierad som CVE-2026-42271. CyberScoops rapport beskriver samma ingångspunkt som en defekt med högsta allvarlighetsgrad i Ivanti Sentry utan att namnge en CVE, och tar inte upp LiteLLM-sårbarheten; The Hacker News namnger ingen av CVE:erna. Sårbarheten i LiteLLM:s MCP-slutpunkt är den som detta arkiv registrerade tidigare under 2026, innan denna kampanj dokumenterades.

Det som den stulna åtkomsten gav operatören var beräkningskraft och data. "Exponerade AI/LLM-tjänster är värdefulla inte bara på grund av sårbarheter i programvaran, utan också för att de kan innehålla användbara data och köras på kraftfull hårdvara som lämpar sig för mining", skrev Lumen. English berättade för CyberScoop att skadeprogrammet även har funktioner för fjärrkodkörning som skulle kunna låta en operatör missbruka AI-modellerna som körs på offrens servrar – angivet som en kapacitet, inte ett observerat utfall.

Dikten som är en uppslagstabell

GitHub-kontot i fråga är "ejejejdfbbebe", och repositoriet är en fork av källkoden till webbplatsen nodejs.org som inte har någon uppenbar koppling till Node.js självt. Inuti det, i en fil med namnet "dash.css" — ett filnamn som inte finns i det ursprungliga repositoriet — placerade operatören en tvåstrofig dikt med titeln "Om sambandets natur." Lumen räknade 11 uppdateringar av den sedan den första commiten den 13 april 2026; CyberScoop rapporterar att formuleringen har ändrats "minst ett dussin gånger."

Som fångat av Lumen i september 2026, löd den första strofen: "I drivrutinens tysta surr börjar maskinerna tala, varje diodpuls trär ljus genom kopparådror. Vi lärde mörkret att bära mening, byte för byte — ett språk byggt av blixtar, kallt och rent." Den andra strofen innehåller raden "Bortom krypteringens mur, hittar en signal sin väg, tickandet från avlägsna servrar svarar tillbaka."

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.'

Extraktionen är mekanisk. En funktion som Lumen anropar extract_poem_phrase_field hämtar tre fraser från fasta positioner i versen – texten mellan "In the silent hum of " och följande komma, mellan "each pulse of " och " threading," och mellan "Beyond the wall of " och nästa komma. Ett fjärde ord återvinns på ett annat sätt, genom att söka efter strängen "of distant servers,", gå tillbaka till föregående blanksteg, kontrollera att de fyra föregående byten stavar "the ", och ta ordet efter det. Vart och ett av de fyra orden matchas sedan mot en hårdkodad ordbok som kompilerats in i binären, och de fyra resulterande talen sammanfogas till en IPv4-adress. I ett prov som Lumen återvann den 23 juni 2026 mappades "driver" till 92, "diode" till 119, "decryption" till 165 och "string" till 74 – vilket ger 92.119.165[.]74.

Eftersom endast de fyra nyckelorden någonsin ändrades under de 11 observerade revisionerna, och avkodningsmönstret aldrig gjorde det, kostade flytten av botnätet operatören en handfull redigeringar i en offentlig textfil. "Det mest intressanta med diktmetoden är att IP-adressen som används för C2-kommunikation är osynlig utanför offrets netflow", sade English till CyberScoop. "För alla som stöter på den är detta helt enkelt en dikt på GitHub. Den har inga länkar, inga filer att ladda ner, ingen krypterad text som lätt skulle kunna flaggas som skadlig, inte ens av avancerade modeller. Det skulle inte finnas någon anledning för någon säkerhetsforskare att identifiera den här dikten som skadlig – eller känna till IP-adressen som är dold i den – om de inte hade tillgång till skadeprogrammet som refererar till den."

Lumen säger sig tro att dikten troligen skrevs av en AI och betecknar det som en slutledning, inte ett fynd. Resonemanget, med Englishs ord till The Hacker News: dikten skulle ha fungerat på vilket språk som helst, men aktörens egen preferens tycks vara italienska. Det är en bedömning av skrivstilen, inte en forensisk tillskrivning av texten till en modell.

Vad skadlig programvara gör när den väl är på plats

Nyttolasten som Lumen analyserade är en ELF-fil som distribueras under namnet "libgcrypt", med SHA-256-hashen 6fab94577364beec314afae3b082dd680933f08a8349b9f35b92667e8231b501. Enligt Lumens analys innehåller den ett fjärrskal, kryptovalutaminerarna Iron och XMRig, HTTP- och HTTPS-skanning samt utplacering av exploits mot sårbara mål.

Infekterade värdar beaconar tillbaka till en av flera C2-portar — 3778, 5001, 5002 eller 9999 — och instrueras att ladda ner ytterligare filer från port 81 på C2-servern (observerade sökvägar inkluderade /private/python3.6 och /private/bins.sh). Mining-utbetalningar dirigeras till den ryska mining-tjänsten Kryptex: Lumen observerade offer som kontaktade 5.180.174[.]162:8029 och 46.21.245[.]211:7029, vilket är värd för edge-ru-07[.]kryptex[.]network. De första 900 offrens vanligaste gemensamma drag, efter kontakt med den initiala C2:n, var kontakt med den Kryptex-slutpunkten.

Botnätet växer också av egen kraft. Komprometterade servrar förvandlades till skannrar och exploitservrar: en exploitserver skickar en specialutformad HTTP POST-begäran till en exponerad tjänst på ett nyfunnet mål och instruerar den att ladda ner skadlig programvara från C2:n. På senare tid såg Lumen pooler av offer som riktade in sig mot SSH-portar och andra inloggningsportaler, vilket Lumen tolkar som en möjlig experimentering med ett distribuerat brute force-ramverk. Lumen framhåller uttryckligen att detta är omoget och obevisat: många av målen var dedikerade servrar i Italien, och forskarna bedömer att kapaciteten "kan ha varit i ett tidigt utvecklingsskede".

Tidslinjen, och de två siffrorna som inte stämmer

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.'

Kampanjens första avkodade C2 var 191.37.28[.]160, en brasiliansk router med en exponerad Boa-webbserver på port 2222 som var sårbar för CVE-2018-21027 och CVE-2018-21028 – även om Lumen inte hittade några direkta bevis för att dessa brister var ingångsvägen. Ungefär en timme efter den första GitHub-commiten kontaktade den C2:n en server i Italien på 57.131.5[.]211:80 som var värd för domänen malwarescan[.]xyz, vilken hade registrerats i februari 2026. Lumen uppger att man inte såg någon annan anmärkningsvärd trafik till den domänens API-slutpunkt och bedömer att domänen kan ägas av PoeLLM-operatören. En revision i maj flyttade C2:n till 120.224.114[.]212, som var geolokaliserad till Kina och, liksom den brasilianska värden, körde en sårbar Boa-webbserver med en admin-sida för routern. Sammantaget identifierade Lumen 12 C2-IP-adresser; tre var fortfarande aktiva vid publiceringen – 92.119.164.50 (först sedd 23 juli 2026), 103.249.201.108 (först sedd 13 augusti 2026) och 178.128.14.204 (först sedd 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 namnger också en misstänkt hanteringsserver: 185.119.19[.]171 i Italien, som tidigare var värd för övervakningspanelerna Prometheus och Uptime Kuma, vilka flera C2:or kontaktade. Rapporten anger denna tillskrivning med måttlig tillförsikt.

När det gäller omfattningen innehåller primärkällan två siffror som inte uppenbart går att förena, och båda är värda att nämna. Lumens huvudsakliga slutsatser säger att PoeLLM "har påverkat fler än 3 400 drabbade servrar". Ett stycke i brödtexten i samma rapport säger att kampanjen "har påverkat nästan 2 200 drabbade servrar", och Lumen beskriver separat toppen för verksamheten i mitten av juni som omfattande nästan 2 200 påverkade servrar med nästan 800 aktiva per dag. The Hacker News tolkar siffrorna som den löpande summan (fler än 3 400) plus toppen i mitten av juni (nästan 2 200, nästan 800 dagligen). Vilken av Lumens två siffror som är det kumulativa antalet drabbade framgår inte uttryckligen av själva rapporten.

Etablerat, bedömt och fortfarande okänt

Det är värt att skilja på tre slags påståenden i denna handling, eftersom arkivets tillförlitlighetsgrad omfattar dokumentationen, inte varje slutledning i den.

• Fastställt från skadeprogrammet självt: den diktbaserade C2-mekanismen, extraktionsfunktionen och ordlistan, nyttolastens kapaciteter (fjärrshell, Iron- och XMRig-miners, skanning, utplacering av exploits), C2-IP-listan, beacon-portar och Kryptex-slutpunkterna. Dessa kommer från artefaktanalys och netflow, och de utgör huvuddelen av rapporten.

• Bedömt med en angiven konfidensnivå:tillskrivning till en italiensktalande hotaktör, med måttlig konfidens, baserat på italienskspråkiga kommentarer i skadlig programvara och på aktörens GitHub-sidor samt netflow-indikatorer som pekar mot Italien. Den italienska servern 185.119.19[.]171 som botnätets administrativa gränssnitt, också med måttlig konfidens. LiteLLM-slutpunkten som den "sannolika" exploateringsvägen. Påståendet att dikten troligen var AI-skriven – en slutledning från språkpreferens, inte ett tekniskt fynd.

• Öppet eller obekräftat: hur många personer som driver kampanjen (okänt), om den har kopplingar till någon annan grupp eller kampanj (inga observerade), om Ivanti Sentry-apparaten var en utnyttjad ingångspunkt eller något tillfälligt (försiktigt formulerat i de viktigaste slutsatserna, beskrivet som ett offer i brödtexten), och hur utvecklad den distribuerade brute force-kapaciteten är. Lumen säger att operatörens bedrifter utöver skanning och kryptominning fortfarande utreds.

Det finns oberoende bekräftelse för rapporteringen, men inte för telemetrin bakom den. CyberScoop och The Hacker News publicerade båda sina egna redogörelser den 7 oktober 2026, med oberoende intervjuer med Black Lotus Labs, och deras detaljer – siffran på över 3 400, diktmekanismen, den italienskspråkiga tillskrivningen, Kryptex-kopplingen – stämmer överens med leverantörens rapport. Båda går dock tillbaka till samma primärforskning. Per den 10 oktober 2026 hade ingen annan forskningsorganisation eller tillsynsmyndighet publicerat en oberoende analys av PoeLLM, så inget här bör läsas som reproducerat av en annan part än Lumen.

Vad förändrades efter avslöjandet

Det svar som fick störst konsekvenser kom inte från en patch. GitHub-förrådet som hyser dikten "är inte längre tillgängligt", en utveckling som Lumen säger "fullständigt slår sönder kampanjen". English sade till The Hacker News: "Vi tror att det var hans enda repo, och det har slagits ut helt." Lumen hade meddelat GitHub, och GitHub nollroutade aktörens tidigare och aktiva C2-servrar, en förändring som English sade trädde i kraft tidigt på tisdagskvällen före publiceringen. Orsaken till att förrådet togs bort är obekräftad — English sade till The Hacker News att det "skulle kunna vara att de flaggade det för missbruk eller att aktören lade ner verksamheten och tystnade på den plattformen." Eftersom C2 härleddes i stället för att hårdkodas, fråntar borttagandet av uppslagstabellen botnätet förmågan att hitta sin egen infrastruktur.

Lumen uppger att man blockerade all trafik till och från PoeLLM C2-servrarna under utredningen och att Lumen Defender-kunder skyddades från dessa servrar från och med upptäckten. Dess publicerade vägledning för försvarare är rutinmässig hygien tillämpad på en ovanlig måluppsättning: kontrollera nätverksloggar mot de kompromissindikatorer som publicerats i dess eget GitHub-arkiv, granska extern exponering efter installation av verktyg med öppen källkod, begränsa tjänsteportar så långt som möjligt, hålla routrar, brandväggar och IoT-enheter uppdaterade och omstartade, och föra in AI-tjänster i hanteringen av attackytan. Den pekar också på installationsguiden för Gotenberg, som redan varnar användare för att exponera tjänsten mot internet — en varning som de hundratals komprometterade Gotenberg-servrarna uppenbarligen föregår.

Inget i underlaget tyder på en teknisk åtgärd för själva trafikmönstret: dikten var inte en sårbarhet i GitHub, Node.js, LiteLLM eller Ollama. Det var en offentlig textfil vars enda betydelse levde inuti en binär som väldigt få människor hade.

Varför detta är en AI-incidentpost

Arkivet registrerar detta som en incident med bekräftad AI-inblandning, taggad INFRA och WEAPON, allvarlighetsgrad hög, med dokumenterad verklig skada – och skadan är konkret snarare än spekulativ: tusentals internetexponerade servrar vars beräkningskraft stals och vars åtkomst återanvändes, i en kampanj som Lumen beskriver som ekonomiskt motiverad snarare än riktad mot modellerna själva. AI-inslaget är målurvalet. Servrar som kör LLM-gateways och lokala modellkörningsmiljöer är egenhostade, ofta internetexponerade, installeras ofta utan patchcykel och sitter på hårdvara som minar effektivt. Lumens egen formulering är att AI-infrastruktur håller på att bli ett attraktivt mål just på grund av den kombinationen – exponerade tjänster med kända sårbarheter, användbara data och snabb, energikrävande hårdvara.

Vapenaspekten är C2-designen, och den definierar i allmänhet denna kampanj. En hårdkodad domän eller IP-adress kan blockeras, sinkholas eller användas för att ta fingeravtryck på skadlig kod. En härledd adress vars enda artefakt är ett till synes harmlöst offentligt dokument kan inte blockeras, sinkholas eller användas för att ta fingeravtryck, om inte en analytiker har binärfilen. Englishs poäng till CyberScoop – att många av kampanjens C2:or aldrig förekom i crowdsourcade säkerhetsverktyg – är måttet på hur väl det fungerade.

Eftersom störningen vilar på ett enda repository snarare än på en åtgärdad sårbarhet är kampanjens status efter den 7 oktober genuint osäker snarare än avslutad: Lumen säger att förlusten av repositoryt "helt slår ut" den, och säger separat att tre C2-servrar fortfarande var aktiva vid publiceringen. Lumen publicerar sina egna komprometteringsindikatorer i ett eget GitHub-repository, och postens allvarlighetsgrad, tillförlitlighetsgrad och registrerade skada är arkivets, inte leverantörens.

Detta är en post. Resten av det — de andra avslöjandena, deras allvarlighets- och konfidensgrader, och vad försvarare faktiskt gjorde åt dem — AI-incidentarkivet indexerar var och en mot sina primärkällor, så att en kampanj som denna kan läsas tillsammans med de incidenter som kom före den i stället för isolerat.