PoeLLM malware hijacks LiteLLM and Gotenberg servers to mine crypto
Lumen's Black Lotus Labs tracked PoeLLM malware across thousands of exposed LiteLLM, Gotenberg, and Gitea servers. Close the ports, then patch.
The PoeLLM malware campaign is a plain lesson in what happens to self-hosted AI tools that face the open internet. Lumen's Black Lotus Labs published its tracking of PoeLLM, a botnet that breaks into exposed LiteLLM gateways, Gotenberg document servers, and Gitea instances, then puts the hardware to work mining cryptocurrency and attacking the next victim. No zero-day required. Just a port someone forgot to close.
What actually happened
Per Black Lotus Labs, the operator made its first commit on April 13, 2026, ramped up scanning in May, and hit a mid-June peak. The report gives two victim counts, almost 2,200 servers in the body and more than 3,400 in its key takeaways, so treat the scale as "thousands." Lumen assesses with moderate confidence that the actor is Italian-speaking, and most victims are in the U.S. and Western Europe.
The confirmed targets are LiteLLM on port 4000 and Gotenberg, a popular open-source PDF conversion API, on port 3000. For LiteLLM, the likely way in is the MCP test endpoint tied to CVE-2026-42271, the command-injection flaw we covered in July. One crafted POST tells the server to download the payload. Lumen says most victims ran AI tools such as LiteLLM and Ollama.
Once inside, PoeLLM installs XMRig and other miners, opens a remote shell, and turns the host into a scanner that exploits more servers. The clever part is the command channel. The malware reads a poem stored in a forked GitHub repository, pulls four words from fixed positions, and converts them into the IP address of its control server. The poem has changed 11 times since April. The operator moves infrastructure by editing verse, and the malware never needs an update.
Lumen did not confirm that PoeLLM steals LLM API keys. It warns that exposed AI services hold useful data and invite token abuse. A LiteLLM box holds your provider keys, so assume the worst if yours was exposed.
Why it matters for your business
This is the boring failure mode, and it is the one that pays attackers. A developer spins up LiteLLM to route model calls, or Gotenberg to render invoices and packing slips, and the default port ends up public. Six months later it mines Monero on your cloud bill and scans the internet under your IP.
The fix is mostly network work. Neither LiteLLM nor Gotenberg should answer the open internet. Put them on a private network behind your app, patch LiteLLM past the vulnerable versions, and check your logs against the Black Lotus Labs IOC list. If a gateway was exposed, rotate every provider key it held.
Key takeaways
- PoeLLM hits exposed LiteLLM (port 4000), Gotenberg (port 3000), and Gitea servers; Lumen counts thousands of victims since April 2026
- The LiteLLM entry point is the MCP test endpoint behind CVE-2026-42271
- Infected hosts mine crypto and attack other servers; a GitHub poem encodes the control server's IP
- Pull AI and document tooling off the public internet, patch, check IOCs, and rotate keys on any exposed gateway
Running LiteLLM, Ollama, or Gotenberg somewhere you haven't checked lately? We map what your stack exposes, move it behind your app, and rotate what leaked. See how we harden self-hosted AI or book an exposure review.
Sources: Lumen Black Lotus Labs, Rush Report: LiteLLM CVE-2026-42271.
- #ai-security
- #litellm
- #malware
- #gotenberg
- #devops
Tommy Rush — Founder, Rush Commerce
Operator turned builder. 15+ years running operations — now shipping the systems businesses run on. More
Get The Rush Report weekly — one email, zero fluff.
Keep reading
GlobalProtect CVE-2026-0257: patching does not end the session
Qilin and Settra ransomware crews still exploit GlobalProtect CVE-2026-0257 five months after the patch. Patch, kill live VPN sessions, then hunt.
Read itYandex data center shut down: your cloud says run your DR plan
A drone strike fully shut Yandex's Vladimir data center, its third hit in a week. Yandex told cloud customers to activate disaster recovery. Is yours ready?
Read it