
Un botnet escondió su servidor de comandos en un poema de GitHub, y convirtió 3.400 servidores de IA expuestos en proxies de minería
- OrcaNUEVOOrca: OrcaCyber Ultra 1.02026-10-17$5.00 / $10.00 por 1M de tokens · 9 tok/s
- deepseekNUEVODeepSeek: DeepSeek V4.1 Flash 10172026-10-17$0.15 / $0.60 por 1M de tokens · 245 tok/s
- DeepSeekNUEVODeepSeek: DeepSeek V4.1 Flash2026-10-1740Inteligencia
- OrcaNUEVOOrca: OrcaCyber Zero 1.52026-10-10$3.00 / $7.50 por 1M de tokens · 91 tok/s
- openaiOpenAI: GPT-6.1 Sol2026-09-2952Inteligencia
- anthropicAnthropic: Claude Sonnet 5.52026-09-2856Inteligencia
- typesafeTypeSafe: Jev 1.132026-09-24$0.04 / $0.00 por 1M de tokens · 796 tok/s
- OpenAIOpenAI: GPT-6 Luna2026-09-2238Inteligencia
- OpenAIOpenAI: GPT-6 Sol2026-09-2248Inteligencia
- AnthropicAnthropic: Claude Opus 5.52026-09-2258Inteligencia
- xAIGrok 4.72026-09-2146Inteligencia
- OrcaOrca: OrcaCyber Zero 1.02026-09-17$3.00 / $7.50 por 1M de tokens · 39 tok/s
- OrcaOrca: OrcaVerify Text 1.02026-09-16$2.00 / $0.00 por 1M de tokens · 832 tok/s
- OpenAIOpenAI: GPT-6 Astra2026-09-0453Inteligencia77Código
- GoogleGoogle: Gemini 3.8 Flash2026-09-0241Inteligencia76Código
- AlibabaQwen: Qwen3.8 Max (0902)2026-09-0245Inteligencia76Código
- AnthropicAnthropic: Claude Fable 5.12026-09-0153Inteligencia82Código
- TencentTencent: Hy4 preview2026-08-28$0.83 / $2.50 por 1M de tokens · 52 tok/s
- AlibabaQwen: Qwen3.8 Flash2026-08-26$0.15 / $0.47 por 1M de tokens · 121 tok/s
- z-aiZ.ai: GLM 5.3 Flash2026-08-2642Inteligencia72Código
El 7 de octubre de 2026, Black Lotus Labs de Lumen Technologies publicó una investigación sobre una campaña de botnet con motivación económica que rastrea como Canto Incognito, cuyo malware denominó PoeLLM. La campaña ha comprometido más de 3400 servidores expuestos a internet desde al menos abril de 2026, concentrados en Estados Unidos y Europa Occidental, según los investigadores, y las víctimas no son máquinas aleatorias. Lumen afirma que se trata predominantemente de implementaciones vulnerables de LiteLLM y Ollama, además de cientos de servidores que ejecutan el convertidor de PDF Gotenberg y el kit de desarrollo Gitea, con los dispositivos Ivanti Sentry también en el punto de mira. Una vez infectados, esos servidores se usaron para minar criptomonedas y se reutilizaron como escáneres y servidores de explotación, lo que Ryan English, de Black Lotus Labs, en una entrevista con CyberScoop, llamó "un ejército privado de proxies habilitados para IA". El mismo informe del proveedor se compartió con The Hacker News, que publicó su propio relato ese mismo día.
El detalle que hace que este registro valga la pena leer no es la escala. Es el diseño de mando y control: no hay ningún dominio codificado de forma fija ni una IP de respaldo en el malware. La dirección del servidor C2 actual se calcula en tiempo de ejecución a partir de cuatro palabras extraídas de un poema alojado en un repositorio público de GitHub. Edita el poema y toda la botnet se mueve.
Qué se vio realmente comprometido
Las víctimas, según el informe de Lumen, son servicios empresariales de IA y para desarrolladores que eran accesibles desde internet: implementaciones de LiteLLM y Ollama, cientos de servidores de conversión de PDF de Gotenberg, y Gitea. Los investigadores de Lumen evaluaron que la campaña también afectó a Ivanti Sentry. Los principales objetivos de escaneo fueron los puertos 3000 y 4000, los puertos de escucha predeterminados de Gotenberg y LiteLLM, respectivamente.
Dos vulnerabilidades son relevantes para cómo se llegó a las máquinas, y el informe es cuidadoso con ambas:
• Ivanti Sentry, CVE-2026-10520. Lumen afirma que sus investigadores encontraron por primera vez la infraestructura PoeLLM mientras investigaban esta vulnerabilidad en la pasarela móvil segura de Ivanti. A principios de junio de 2026, una víctima comprometida de Ivanti Sentry contactó con un servidor dedicado en 5.78.73[.]122 y poco después comenzó a escanear en busca de otros dispositivos vulnerables. Nótese la cautela: la propia lista de conclusiones clave de Lumen dice que la campaña tiene un "posible objetivo en Ivanti Sentry", mientras que el cuerpo del mismo informe describe el dispositivo como una víctima activa. Esa discrepancia interna está en la fuente primaria.
• LiteLLM, CVE-2026-42271. Una muestra de PoeLLM que Lumen examinó se dirigía al endpoint "/mcp-rest/test/connection" de LiteLLM, que, según Lumen, "probablemente fue la ruta de explotación" para una vulnerabilidad de inyección de comandos de LiteLLM identificada como CVE-2026-42271. El informe de CyberScoop describe el mismo punto de entrada como un defecto de gravedad máxima en Ivanti Sentry sin nombrar un CVE, y no cubre la falla de LiteLLM; The Hacker News no nombra ninguno de los CVE. La falla del endpoint MCP de LiteLLM es la que este archivo registró a principios de 2026, antes de que se documentara esta campaña.
Lo que el acceso robado le proporcionó al operador fueron capacidad de cómputo y datos. «Los servicios de IA/LLM expuestos son valiosos no solo por las vulnerabilidades de software, sino también porque pueden contener datos útiles y ejecutarse en hardware potente adecuado para la minería», escribió Lumen. English declaró a CyberScoop que el malware también incluye funcionalidad de ejecución remota de código que podría permitir a un operador abusar de los modelos de IA que se ejecutan en los servidores víctima — planteado como una capacidad, no como un resultado observado.
El poema que también es una tabla de consulta
La cuenta de GitHub en cuestión es "ejejejdfbbebe", y el repositorio es una bifurcación del código fuente del sitio web nodejs.org que no tiene ninguna conexión aparente con Node.js en sí. Dentro de él, en un archivo llamado "dash.css" —un nombre de archivo que no existe en el repositorio original—, el operador colocó un poema de dos estrofas titulado "Sobre la naturaleza de la conexión". Lumen contó 11 actualizaciones de este desde el primer commit, el 13 de abril de 2026; CyberScoop informa de que el texto se ha cambiado "al menos una docena de veces".
Como lo captó Lumen en septiembre de 2026, la primera estrofa decía: "En el zumbido silencioso del controlador, las máquinas comienzan a hablar, cada pulso de diodo hilando luz a través de venas de cobre. Enseñamos a la oscuridad a llevar significado, byte a byte — un lenguaje construido de relámpagos, frío y limpio". La segunda estrofa incluye el verso "Más allá del muro de cifrado, una señal encuentra su camino, el tic de servidores distantes responde".
![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.'](https://cms.orcarouter.ai/api/media/file/2-1820.png)
La extracción es mecánica. Una función que Lumen llama extract_poem_phrase_field extrae tres frases de posiciones fijas en el verso — el texto entre "In the silent hum of " y la coma siguiente, entre "each pulse of " y " threading,", y entre "Beyond the wall of " y la coma siguiente. Una cuarta palabra se recupera de forma diferente, buscando la cadena "of distant servers,", retrocediendo hasta el espacio en blanco anterior, comprobando que los cuatro bytes precedentes deletrean "the ", y tomando la palabra que sigue. Cada una de las cuatro palabras se compara entonces con un diccionario codificado de forma rígida compilado en el binario, y los cuatro números resultantes se concatenan en una dirección IPv4. En una muestra que Lumen recuperó el 23 de junio de 2026, "driver" se asignó a 92, "diode" a 119, "decryption" a 165 y "string" a 74 — lo que da 92.119.165[.]74.
Dado que lo único que cambiaba en las 11 revisiones observadas eran las cuatro palabras clave, y el patrón de decodificación nunca cambiaba, mover la botnet le costó al operador un puñado de ediciones en un archivo de texto público. "La parte más interesante del enfoque del poema es que la dirección IP utilizada para las comunicaciones de C2 es invisible fuera del netflow de la víctima", declaró English a CyberScoop. "Para cualquiera que se tope con él, esto es simplemente un poema en GitHub. No tiene enlaces, ni archivos que descargar, ni texto cifrado que pudiera ser fácilmente marcado como malicioso, incluso por modelos avanzados. No habría ninguna razón para que un investigador de seguridad identificara este poema como malicioso —ni supiera de la dirección IP oculta en él— a menos que tuviera acceso al malware que lo referencia."
Lumen dice que cree que el poema probablemente fue escrito por una IA, y lo califica como una inferencia, no como un hallazgo. El razonamiento, en palabras de English a The Hacker News: el poema habría funcionado en cualquier idioma, sin embargo, la preferencia del propio actor parece ser el italiano. Es un juicio sobre el estilo de escritura, no una atribución forense del texto a un modelo.
Qué hace el malware una vez que se instala
La carga útil que Lumen analizó es un archivo ELF distribuido con el nombre «libgcrypt», con el hash SHA-256 6fab94577364beec314afae3b082dd680933f08a8349b9f35b92667e8231b501. Según el análisis de Lumen, incluye un shell remoto, los mineros de criptomonedas Iron y XMRig, capacidad de escaneo HTTP y HTTPS, y despliegue de exploits contra objetivos vulnerables.
Los hosts infectados envían balizas a uno de varios puertos C2 — 3778, 5001, 5002 o 9999 — y reciben instrucciones de descargar más archivos desde el puerto 81 del servidor C2 (las rutas observadas incluían /private/python3.6 y /private/bins.sh). Los pagos de minería se dirigen al servicio de minería ruso Kryptex: Lumen observó que las víctimas contactaban con 5.180.174[.]162:8029 y 46.21.245[.]211:7029, que aloja edge-ru-07[.]kryptex[.]network. El rasgo compartido más común de las primeras 900 víctimas, después del contacto con el C2 inicial, fue el contacto con ese endpoint de Kryptex.
La botnet también se expande por sí sola. Los servidores comprometidos se convirtieron en escáneres y servidores de explotación: un servidor de explotación envía un HTTP POST manipulado a un servicio expuesto en un objetivo recién encontrado, indicándole que descargue el malware desde el C2. Más recientemente, Lumen observó conjuntos de víctimas atacando puertos SSH y otros portales de inicio de sesión, lo que interpreta como posible experimentación con un framework de fuerza bruta distribuida. Lumen califica explícitamente eso como inmaduro y no probado: muchos de los objetivos eran servidores dedicados en Italia, y los investigadores consideran que la capacidad «podría haber estado en las primeras etapas de desarrollo».
La cronología, y los dos números que no coinciden
![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.'](https://cms.orcarouter.ai/api/media/file/3-1819.png)
El primer C2 decodificado de la campaña fue 191.37.28[.]160, un enrutador brasileño con un servidor web Boa expuesto en el puerto 2222 que era vulnerable a CVE-2018-21027 y CVE-2018-21028 — aunque Lumen no encontró evidencia directa de que esas fallas fueran la vía de entrada. Aproximadamente una hora después del primer commit en GitHub, ese C2 contactó con un servidor en Italia en 57.131.5[.]211:80 que alojaba el dominio malwarescan[.]xyz, el cual había sido registrado en febrero de 2026. Lumen dice que no vio otro tráfico notable hacia el endpoint de API de ese dominio y evalúa que el dominio podría ser propiedad del operador de PoeLLM. Una revisión de mayo movió el C2 a 120.224.114[.]212, geolocalizado en China y, al igual que el host brasileño, ejecutando un servidor web Boa vulnerable con una página de administración de enrutador. En total, Lumen identificó 12 direcciones IP de C2; tres seguían activas en el momento de la publicación — 92.119.164.50 (visto por primera vez el 23 de julio de 2026), 103.249.201.108 (visto por primera vez el 13 de agosto de 2026) y 178.128.14.204 (visto por primera vez el 16 de junio de 2026).

Lumen también nombra un posible servidor de gestión: 185.119.19[.]171 en Italia, que anteriormente alojaba paneles de monitorización Prometheus y Uptime Kuma, con los que contactaron varios C2. El informe establece esta atribución con una confianza moderada.
En cuanto a la escala, la fuente principal contiene dos cifras que no se reconcilian de manera obvia, y ambas merecen mencionarse. Las conclusiones clave de Lumen afirman que PoeLLM "ha afectado a más de 3400 servidores víctimas". Un párrafo del cuerpo del mismo informe dice que la campaña "ha afectado a casi 2200 servidores víctimas", y Lumen describe por separado el pico de operaciones a mediados de junio como la implicación de casi 2200 servidores afectados, con casi 800 activos por día. The Hacker News interpreta las cifras como el total acumulado (más de 3400) más el pico de mediados de junio (casi 2200, casi 800 diarios). Cuál de las dos cifras de Lumen es el recuento acumulado de víctimas no se explicita en el propio informe.
Establecido, evaluado y aún desconocido
Conviene distinguir tres tipos de afirmación en este registro, porque el grado de confianza del archivo cubre la documentación, no todas las inferencias que contiene.
• Establecido a partir del propio malware: el mecanismo C2 basado en poemas, la función de extracción y el diccionario, las capacidades de la carga útil (shell remoto, mineros Iron y XMRig, escaneo, despliegue de exploits), la lista de IP de C2, los puertos de beacon y los endpoints de Kryptex. Estos provienen del análisis de artefactos y netflow, y constituyen la mayor parte del informe.
• Evaluado con un nivel de confianza declarado: atribución a un actor de amenazas de habla italiana, con confianza moderada, basada en comentarios en italiano dentro del malware y en las páginas de GitHub del actor, además de indicadores de netflow que apuntan a Italia. El servidor italiano 185.119.19[.]171 como la interfaz administrativa del botnet, también con confianza moderada. El endpoint de LiteLLM como la ruta de explotación "probable". La afirmación de que el poema probablemente fue escrito por IA — una inferencia basada en la preferencia de idioma, no un hallazgo técnico.
• Abierto o sin confirmar: cuántas personas operan la campaña (se desconoce), si está vinculada a algún otro grupo o campaña (no se ha observado ninguna), si el dispositivo Ivanti Sentry fue un punto de entrada explotado o algo incidental (se plantea con cautela en las conclusiones clave y se describe como víctima en el cuerpo), y cuán madura es la capacidad distribuida de fuerza bruta. Lumen afirma que los logros del operador más allá del escaneo y la criptominería siguen bajo investigación.
Existe corroboración independiente para el reportaje, pero no para la telemetría que lo sustenta. CyberScoop y The Hacker News publicaron sus propios artículos el 7 de octubre de 2026, con entrevistas independientes a Black Lotus Labs, y sus detalles —la cifra de más de 3400, el mecanismo del poema, la atribución en italiano, el vínculo con Kryptex— coinciden con el informe del proveedor. Sin embargo, ambos se remontan a la misma investigación primaria. A 10 de octubre de 2026, ninguna otra organización de investigación ni ningún regulador ha publicado un análisis independiente de PoeLLM, por lo que nada de lo aquí expuesto debe leerse como reproducido por una parte distinta de Lumen.
¿Qué cambió después de la divulgación?
La respuesta más trascendental no vino de un parche. El repositorio de GitHub que alojaba el poema «ya no es accesible», un acontecimiento que, según Lumen, «interrumpe por completo la campaña». English declaró a The Hacker News: «Creemos que ese era su único repositorio, y ha sido interrumpido por completo». Lumen había notificado a GitHub, y este anuló el enrutamiento de los servidores C2 anteriores y activos del actor, un cambio que, según English, entró en vigor al comienzo de la noche del martes previo a la publicación. La causa de la eliminación del repositorio no está confirmada; English declaró a The Hacker News que «podría ser que lo marcaran por abuso o que el actor cerrara el negocio y se quedara callado en esa plataforma». Debido a que el C2 se derivaba en lugar de estar codificado de forma fija, eliminar la tabla de búsqueda le quita a la botnet la capacidad de encontrar su propia infraestructura.
Lumen afirma que bloqueó todo el tráfico hacia y desde los servidores C2 de PoeLLM durante la investigación, y que los clientes de Lumen Defender estuvieron protegidos de esos servidores desde el descubrimiento en adelante. Su guía publicada para defensores es higiene rutinaria aplicada a un conjunto de objetivos inusual: revisar los registros de red contra los indicadores de compromiso que publicó en su propio repositorio de GitHub, auditar la exposición externa después de instalar herramientas de código abierto, restringir los puertos de servicio tanto como sea posible, mantener enrutadores, firewalls y dispositivos IoT parcheados y reiniciados, e incorporar los servicios de IA a la gestión de la superficie de ataque. También señala la guía de instalación de Gotenberg, que ya advierte a los usuarios que no expongan el servicio a internet —una advertencia que los cientos de servidores Gotenberg comprometidos, evidentemente, anteceden.
Nada en el registro sugiere una solución técnica para el propio patrón de tráfico: el poema no era una vulnerabilidad en GitHub, Node.js, LiteLLM ni Ollama. Era un archivo de texto público cuyo único significado vivía dentro de un binario que muy pocas personas tenían.
Por qué esto es un registro de incidentes de IA
El archivo lo registra como un incidente con participación de IA confirmada, etiquetado como INFRA y WEAPON, de severidad alta y con daño real documentado — y el daño es concreto, no especulativo: miles de servidores expuestos a internet cuyo cómputo fue robado y cuyo acceso fue reutilizado, en una campaña que Lumen describe como motivada por intereses financieros y no dirigida a los propios modelos. El elemento de IA es la selección de objetivos. Los servidores que ejecutan puertas de enlace de LLM y entornos de ejecución de modelos locales son autoalojados, con frecuencia quedan expuestos a internet, a menudo se instalan sin un ciclo de parches y se asientan sobre hardware que mina de forma eficiente. El propio planteamiento de Lumen es que la infraestructura de IA se está convirtiendo en un objetivo atractivo precisamente por esa combinación: servicios expuestos con vulnerabilidades conocidas, datos útiles y hardware rápido y ávido de energía.
El ángulo del arma es el diseño del C2, y se generaliza más allá de esta campaña. Un dominio o una IP fijados en el código se pueden bloquear, redirigir a un sumidero o usar para tomar la huella digital del malware. Una dirección derivada cuyo único artefacto es un documento público de aspecto inofensivo no se puede bloquear, redirigir a un sumidero ni usar para tomar la huella digital, a menos que un analista tenga el binario. La observación de English a CyberScoop —que muchos de los C2 de la campaña nunca aparecieron en herramientas de seguridad de origen colaborativo— es la medida de lo bien que funcionó eso.
Dado que la interrupción se sustenta en un único repositorio y no en un fallo parcheado, el estado de la campaña después del 7 de octubre es verdaderamente incierto en lugar de estar cerrado: Lumen afirma que la pérdida del repositorio la «interrumpe por completo» y, por separado, dice que tres servidores C2 seguían activos en el momento de la publicación. Lumen publica sus propios indicadores de compromiso en un repositorio de GitHub propio, y la gravedad, el grado de confianza y el daño registrado del registro son del archivo, no del proveedor.
Este es un registro. El resto — las otras divulgaciones, sus niveles de gravedad y confianza, y lo que los defensores hicieron realmente al respecto — el Archivo de Incidentes de IAindexa cada uno con sus fuentes primarias, de modo que una campaña como esta puede leerse junto a los incidentes que la precedieron en lugar de forma aislada.
