PoeLLM: el malware que controló un botnet de 3.400 servidores
PoeLLM ocultaba la dirección de sus servidores de control en un poema de GitHub y usaba máquinas vulnerables para minar criptomonedas.

👁 114 lecturas
Black Lotus Labs, el equipo de Lumen, ha descrito una campaña que sigue desde abril de 2026 y que ha bautizado como Canto Incognito. El malware PoeLLM llegó a más de 3.400 servidores, en su mayoría con versiones vulnerables de servicios de código abierto para gestionar modelos de lenguaje, sobre todo LiteLLM y Ollama. El objetivo del código malicioso no era robar datos ni extorsionar a las víctimas, sino minar criptomonedas con sus equipos.
Lo más llamativo de la operación era la forma en que los equipos infectados averiguaban dónde buscar el servidor de control. El autor publicó en GitHub un poema titulado On the Nature of Connection, compuesto por dos estrofas. Cuatro palabras concretas del texto codificaban una dirección IPv4. Cuando había que trasladar la infraestructura a otro servidor, el autor cambiaba esas palabras y publicaba un nuevo commit. Lo hizo 11 veces. El malware descargaba el archivo, extraía los términos correspondientes y componía la dirección. Los investigadores señalan que el método de decodificación no cambió, por lo que, una vez descifrado, era posible anticipar los siguientes traslados.

PoeLLM no atacaba el modelo, sino el servidor que lo ejecutaba
Conviene distinguir este caso de la llamada «poesía adversarial», que ha acaparado titulares en los últimos meses: técnicas para saltarse las protecciones de los modelos de lenguaje formulando peticiones dañinas como poemas. Aquí el poema no se enviaba a ningún modelo ni se inyectaba nada en un prompt. Era un canal corriente para publicar una dirección, elegido porque un texto literario en GitHub no parece sospechoso ni activa heurísticas de detección. Como explicó el equipo de Lumen a The Register, la poesía es
«un vehículo ideal para ocultar un mensaje importante»
- equipo de Black Lotus Labs, citado por The Register
La vía de entrada, en cambio, era mucho más prosaica. En el caso de LiteLLM, un proxy popular que permite a las empresas dirigir el tráfico de sus aplicaciones a varios proveedores de modelos desde un único punto, la explotación probablemente se hacía mediante una petición POST manipulada al endpoint de conexión. La vulnerabilidad permitía que dos endpoints ejecutaran en el host los comandos enviados, sin comprobar los permisos. Se identificó como CVE-2026-42271 y en junio se incorporó al catálogo de vulnerabilidades explotadas en ataques de la CISA estadounidense. La corrección se publicó en abril, lo que significa que muchas víctimas no actualizaron durante meses un servicio expuesto directamente a internet.
Entre los objetivos también había otras tres herramientas que los administradores suelen tratar como auxiliares y, por eso, a menudo olvidan proteger: Gotenberg, una API para convertir documentos a PDF en Docker cuya propia documentación advierte expresamente que no debe exponerse a internet pública; Gitea, una plataforma Git autoalojada; y Ollama, que por defecto no está expuesta al exterior, aunque muchos usuarios cambian deliberadamente la dirección de escucha a 0.0.0.0 para acceder al modelo desde un portátil o un teléfono. Los investigadores mencionan también Ivanti Sentry: una instancia infectada de este dispositivo fue la pista que les condujo a toda la campaña.
Cuánto cuesta un mes de electricidad robada en un equipo con GPU
La carga maliciosa incluía XMRig e Iron, programas de minería conectados a la infraestructura del pool Kryptex. Las primeras 900 víctimas tenían algo en común: todas habían contactado con un endpoint de un servicio ruso de minería de criptomonedas. El motivo era económico y se puede calcular, aunque conviene hacerlo desde los dos lados: esa es la parte más interesante del caso.
Tomemos una configuración habitual para ejecutar modelos de lenguaje en un servidor propio: una tarjeta RTX 4090 en una estación de trabajo y un procesador con una docena larga de hilos. XMRig mina Monero principalmente con la CPU, mientras que Iron puede cargar la GPU. Un equipo infectado que funciona sin parar a plena carga consume unos 500-550 W de la toma de corriente; el mismo equipo en reposo, esperando una consulta al modelo, consume unos 80 W. La diferencia es de 450 W. En 720 horas al mes, supone 324 kWh. A un coste aproximado de 0,29 $ por kWh, equivalente a unos 1,10 unidades de la moneda polaca por kWh, el sobrecoste mensual de electricidad sería de unos 94,18 $ por equipo infectado. En un año, supera los 1.129 $, más de la mitad del precio de la propia tarjeta.
Para el atacante, el mismo esfuerzo tiene un aspecto muy distinto. Minar Monero con un procesador de consumo con una docena larga de hilos da del orden de 10-15 kH/s. Con la potencia actual de la red Monero y un precio de la moneda cercano a los 300 dólares, eso equivale a unos 2-3 dólares al mes por equipo. La proporción es contundente: el dueño del hardware paga más de treinta veces lo que gana el ladrón. Pero, con 3.400 equipos, esos pequeños ingresos suman aproximadamente 34.000 $ al mes de beneficio, con costes nulos. La factura conjunta de electricidad que pagan las víctimas puede alcanzar 1,2 millones de dólares al mes, suponiendo que una parte considerable de los equipos infectados tenga GPU potentes y no sean pequeños servidores VPS. Por eso la infraestructura de IA se ha convertido en un objetivo atractivo: pocos entornos concentran tantos equipos con tarjetas caras, encendidos las 24 horas y administradores que los consideran un «entorno de pruebas».
Qué hacer si ejecutas un modelo en tu propio servidor
Si tienes una instancia propia, puedes empezar por estas comprobaciones. Primero, mira si Ollama escucha en 0.0.0.0. Si la variable OLLAMA_HOST está configurada con esa dirección, cualquiera que conozca tu IP puede enviar consultas al modelo y potencialmente hacer algo más. El valor predeterminado es 127.0.0.1 y es preferible mantenerlo así. Para acceder desde fuera, utiliza un túnel SSH o WireGuard en lugar de abrir el puerto. Segundo, actualiza LiteLLM a la versión que incluye la corrección publicada en abril o a una posterior. Si no sabes qué versión tienes, considera que podría ser vulnerable. Tercero, deja Gotenberg y Gitea solo en la red interna: la documentación de Gotenberg lo indica claramente.
El diagnóstico es sencillo porque un minero no puede esconderse del medidor. Si la tarjeta alcanza los 70 grados y los ventiladores funcionan cuando nadie está enviando consultas al modelo, no es que «el modelo se esté calentando»: alguien está minando. Comprueba si hay procesos con nombres parecidos a los de servicios del sistema que consumen toda la CPU y busca conexiones salientes a los puertos de pools de minería. Lumen ha publicado una lista de indicadores de compromiso en su repositorio de GitHub y ha bloqueado en su red troncal todo el tráfico hacia y desde los servidores de control de PoeLLM. Eso no significa que la campaña haya terminado, sino que se ha cerrado una de las rutas principales.
Por qué veremos más campañas como esta
Las herramientas para ejecutar modelos localmente se diseñaron siguiendo la lógica de las herramientas de desarrollo: deben funcionar nada más instalarlas, sin configuración, contraseña ni certificado. Es una premisa razonable para un programa que se ejecuta en un portátil. Deja de serlo cuando ese mismo paquete acaba en un servidor con cuatro tarjetas gráficas y una dirección pública porque un equipo necesitaba «algo rápido para hacer pruebas» y luego las pruebas se quedan para siempre.
El robo de capacidad de cálculo es, además, el escenario más benigno que puede sufrir una puerta de enlace a modelos mal protegida. Los servidores infectados en la campaña Canto Incognito también se convertían en escáneres y servidores de explotación, y atacaban a otros equipos en nombre de sus propietarios. Una versión más grave del mismo problema sería el robo de claves API guardadas en la configuración de LiteLLM. En ese caso, el coste no sería la factura eléctrica mensual, sino el importe de los tokens que alguien llegara a generar en tu cuenta con el proveedor del modelo antes de que te dieras cuenta. Con las tarifas de los modelos de razonamiento más grandes, esa cantidad puede crecer en un día hasta un nivel que haga que un mes de minería de Monero parezca calderilla.
Información comprobada el 14 de octubre de 2026. Fuentes: Tom’s Hardware, informe sobre la campaña Canto Incognito; Black Lotus Labs de Lumen; catálogo KEV de la CISA estadounidense (CVE-2026-42271). El coste de electricidad es un cálculo editorial basado en la diferencia de consumo estimada, las horas mensuales y un precio de referencia de unos 1,10 unidades de la moneda polaca por kWh, convertido a dólares al tipo implícito de 3,78 unidades de la moneda polaca por dólar.
Google · Tus fuentesBrilla más alto en tu Google - con un solo clicAñadir a fuentes preferidas →Preguntas frecuentes
¿Cómo ocultaba PoeLLM la dirección de su servidor de control?
El autor publicó en GitHub un poema titulado On the Nature of Connection, en el que cuatro palabras concretas codificaban una dirección IPv4. Cuando había que trasladar la infraestructura, cambiaba esas palabras y publicaba un nuevo commit. Lo hizo 11 veces.
¿Cuánto cuesta al propietario un mes de minería en un servidor infectado?
Un equipo infectado con una RTX 4090 que funciona sin parar consume unos 450 W más que en reposo, lo que supone 324 kWh al mes. A un precio de referencia de unos 0,29 $ por kWh, equivalente a unos 1,10 unidades de la moneda polaca, el sobrecoste es de aproximadamente 94,18 $ al mes, más de 1.129 $ al año: más de la mitad del precio de la propia tarjeta.
¿Cuántos servidores han podido infectarse en la campaña Canto Incognito?
Los investigadores de Lumen contabilizaron más de 3.400 servidores afectados. No publicaron un desglose geográfico, así que el artículo no permite saber cuántos estaban en cada país.
More on this from FULGOR
noticias·Kimi K3 sube de precio: nueva tarifa por millón de tokensEl modelo Kimi K3 actualiza sus precios: la salida sube a 15,00 USD por millón de tokens. Analizamos el impacto de este aumento del 11%.

