Ilustração técnica abstrata para o artigo. Diagrama em estilo vetorial flat sobre um fundo azul-marinho profundo: à esquerda, um pequeno agrupamento de racks de servidores estilizados desenhados como ícones simples de linha; à direita, uma rede de linhas finas em ciano e azul que ligam muitos pequenos nós circulares. Acima dos servidores, um ícone de livro aberto com duas barras tênues representando versos é ligado ao agrupamento por uma única linha tracejada, sugerindo um caminho de consulta de um documento público para um endereço de máquina. Não aparecem textos, números nem logotipos na ilustração; o logotipo OrcaRouter é composto no canto inferior direito.
AI Safety Incidents

Uma botnet escondeu seu servidor de comando em um poema do GitHub — e transformou 3.400 servidores de IA expostos em proxies de mineração

Autor

Rowan Sterling

Data de publicação

Modelos mais recentes · 20Ver todos os modelos →
Benchmarks: Artificial Analysis · atualizado diariamente
Voltar para todas as publicações

Em 7 de outubro de 2026, o Black Lotus Labs, da Lumen Technologies, publicou uma pesquisa sobre uma campanha de botnet com motivação financeira que rastreia como Canto Incognito, cujo malware foi batizado de PoeLLM. A campanha comprometeu mais de 3.400 servidores expostos à internet desde pelo menos abril de 2026, concentrados nos Estados Unidos e na Europa Ocidental, de acordo com os pesquisadores — e as vítimas não são máquinas aleatórias. A Lumen afirma que são predominantemente implantações vulneráveis de LiteLLM e Ollama, além de centenas de servidores executando o conversor de PDF Gotenberg e o kit de desenvolvimento Gitea, com appliances Ivanti Sentry também no escopo. Depois de infectados, esses servidores foram usados para mineração de criptomoedas e reaproveitados como scanners e servidores de exploração — o que Ryan English, do Black Lotus Labs, em entrevista ao CyberScoop, chamou de "um exército privado de proxies habilitados para IA". O mesmo relatório do fornecedor foi compartilhado com o The Hacker News, que publicou seu próprio relato no mesmo dia.

O detalhe que torna este registro digno de leitura não é a escala. É o design de comando e controle: não há domínio embutido no código nem IP de fallback no malware. O endereço do servidor C2 atual é calculado em tempo de execução a partir de quatro palavras retiradas de um poema hospedado em um repositório público do GitHub. Edite o poema, e toda a botnet se move.

O que foi realmente comprometido

As vítimas, segundo o relatório da Lumen, são serviços empresariais de IA e para desenvolvedores que estavam acessíveis pela internet: implantações do LiteLLM e do Ollama, centenas de servidores de conversão de PDF do Gotenberg e o Gitea. Os pesquisadores da Lumen avaliaram que a campanha também atingiu o Ivanti Sentry. Os principais objetivos de varredura eram as portas 3000 e 4000, as portas de escuta padrão do Gotenberg e do LiteLLM, respectivamente.

Duas vulnerabilidades são importantes para entender como as máquinas foram alcançadas, e o relatório é cuidadoso em relação a ambas:

• Ivanti Sentry, CVE-2026-10520. A Lumen afirma que seus pesquisadores encontraram pela primeira vez a infraestrutura PoeLLM ao investigar essa falha no gateway móvel seguro da Ivanti. No início de junho de 2026, uma vítima comprometida do Ivanti Sentry contatou um servidor dedicado em 5.78.73[.]122 e, logo depois, começou a escanear outros dispositivos vulneráveis. Observe a ressalva: a própria lista de principais conclusões da Lumen diz que a campanha tem "possível direcionamento ao Ivanti Sentry", enquanto o corpo do mesmo relatório descreve o equipamento como uma vítima real. Essa discrepância interna está na fonte primária.

• LiteLLM, CVE-2026-42271.Uma amostra do PoeLLM que a Lumen examinou tinha como alvo o endpoint "/mcp-rest/test/connection" do LiteLLM, que, segundo a Lumen, "provavelmente foi o caminho de exploração" para uma vulnerabilidade de injeção de comando do LiteLLM identificada como CVE-2026-42271. O relatório da CyberScoop descreve o mesmo ponto de entrada como uma falha de severidade máxima no Ivanti Sentry, sem nomear um CVE, e não aborda a falha do LiteLLM; o The Hacker News não nomeia nenhum dos dois CVEs. A falha no endpoint MCP do LiteLLM é a que este arquivo registrou no início de 2026, antes de esta campanha ser documentada.

O que o acesso roubado rendeu ao operador foi capacidade de computação e dados. "Serviços de IA/LLM expostos são valiosos não apenas por causa de vulnerabilidades de software, mas também porque podem conter dados úteis e rodar em hardware potente adequado para mineração", escreveu a Lumen. English disse ao CyberScoop que o malware também carrega funcionalidade de execução remota de código que poderia permitir que um operador abuse dos modelos de IA em execução nos servidores das vítimas — declarado como uma capacidade, não como um resultado observado.

O poema que também é uma tabela de consulta

A conta do GitHub em questão é "ejejejdfbbebe", e o repositório é um fork do código-fonte do site nodejs.org que não tem conexão aparente com o próprio Node.js. Dentro dele, em um arquivo chamado "dash.css" — um nome de arquivo que não existe no repositório original —, o operador colocou um poema de duas estrofes intitulado "Sobre a Natureza da Conexão". A Lumen contabilizou 11 atualizações nele desde o primeiro commit, em 13 de abril de 2026; o CyberScoop relata que o texto foi alterado "pelo menos uma dúzia de vezes".

Conforme capturado pela Lumen em setembro de 2026, a primeira estrofe dizia: "No zumbido silencioso do driver, as máquinas começam a falar, cada pulso de diodo enfiando luz por veias de cobre. Ensinamos a escuridão a carregar significado, byte a byte — uma linguagem construída de relâmpagos, fria e limpa." A segunda estrofe inclui o verso "Além da parede da criptografia, um sinal encontra seu caminho, o tique de servidores distantes responde de volta."

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

A extração é mecânica. Uma função que o Lumen chama de extract_poem_phrase_field extrai três frases de posições fixas no verso — o texto entre "In the silent hum of " e a vírgula seguinte, entre "each pulse of " e " threading," e entre "Beyond the wall of " e a vírgula seguinte. Uma quarta palavra é recuperada de forma diferente, procurando a string "of distant servers,", retrocedendo até ao espaço em branco anterior, verificando que os quatro bytes precedentes formam "the ", e tomando a palavra a seguir. Cada uma das quatro palavras é então comparada com um dicionário codificado de forma rígida compilado no binário, e os quatro números resultantes são concatenados num endereço IPv4. Numa amostra que o Lumen recuperou em 23 de junho de 2026, "driver" correspondia a 92, "diode" a 119, "decryption" a 165 e "string" a 74 — dando 92.119.165[.]74.

Como apenas as quatro palavras-chave mudaram ao longo das 11 revisões observadas, e o padrão de decodificação nunca mudou, mover a botnet custou ao operador algumas edições em um arquivo de texto público. "A parte mais interessante da abordagem do poema é que o endereço IP usado para comunicações de C2 é invisível fora do netflow da vítima", disse English ao CyberScoop. "Para qualquer um que se depare com ele, isto é simplesmente um poema no GitHub. Ele não tem links, nem arquivos para baixar, nem texto criptografado que pudesse ser facilmente sinalizado como malicioso, mesmo por modelos avançados. Não haveria motivo para qualquer pesquisador de segurança identificar este poema como malicioso — ou saber sobre o endereço IP escondido nele — a menos que tivesse acesso ao malware que faz referência a ele."

A Lumen diz acreditar que o poema provavelmente foi escrito por uma IA, e classifica isso como uma inferência, não como uma constatação. O raciocínio, nas palavras de English à The Hacker News: o poema teria funcionado em qualquer idioma, mas a preferência do próprio ator parece ser o italiano. Trata-se de um julgamento sobre estilo de escrita, não de uma atribuição forense do texto a um modelo.

O que o malware faz depois que chega

O payload analisado pela Lumen é um arquivo ELF distribuído sob o nome "libgcrypt", com o hash SHA-256 6fab94577364beec314afae3b082dd680933f08a8349b9f35b92667e8231b501. De acordo com a análise da Lumen, ele inclui um shell remoto, os mineradores de criptomoedas Iron e XMRig, capacidade de varredura HTTP e HTTPS e implantação de exploits contra alvos vulneráveis.

Os hosts infectados enviam beacons de volta para uma de várias portas C2 — 3778, 5001, 5002 ou 9999 — e recebem instruções para baixar arquivos adicionais da porta 81 no servidor C2 (os caminhos observados incluíam /private/python3.6 e /private/bins.sh). Os pagamentos de mineração são encaminhados para o serviço russo de mineração Kryptex: a Lumen observou vítimas contatando 5.180.174[.]162:8029 e 46.21.245[.]211:7029, que hospeda edge-ru-07[.]kryptex[.]network. A característica compartilhada mais comum das primeiras 900 vítimas, após o contato com o C2 inicial, foi o contato com esse endpoint da Kryptex.

A botnet também se expande sozinha. Servidores comprometidos foram transformados em scanners e servidores de exploit: um servidor de exploit envia um HTTP POST elaborado a um serviço exposto em um alvo recém-descoberto, instruindo-o a baixar o malware do C2. Mais recentemente, a Lumen viu grupos de vítimas mirando portas SSH e outros portais de login, o que ela interpreta como possível experimentação com uma estrutura distribuída de força bruta. A Lumen caracteriza explicitamente isso como imaturo e não comprovado: muitos dos alvos eram servidores dedicados na Itália, e os pesquisadores avaliam que a capacidade "pode ter estado nos estágios iniciais de desenvolvimento."

A linha do tempo, e os dois números que não coincidem

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

O primeiro C2 decodificado da campanha foi 191.37.28[.]160, um roteador brasileiro com um servidor web Boa exposto na porta 2222 que era vulnerável a CVE-2018-21027 e CVE-2018-21028 — embora a Lumen não tenha encontrado evidência direta de que essas falhas fossem o caminho de entrada. Aproximadamente uma hora após o primeiro commit no GitHub, esse C2 contactou um servidor na Itália em 57.131.5[.]211:80 hospedando o domínio malwarescan[.]xyz, que havia sido registrado em fevereiro de 2026. A Lumen diz que não viu nenhum outro tráfego notável para o endpoint da API desse domínio e avalia que o domínio pode ser propriedade do operador do PoeLLM. Uma revisão de maio moveu o C2 para 120.224.114[.]212, geolocalizado na China e, assim como o host brasileiro, executando um servidor web Boa vulnerável com uma página de administração de roteador. No total, a Lumen identificou 12 endereços IP de C2; três ainda estavam ativos no momento da publicação — 92.119.164.50 (visto pela primeira vez em 23 de julho de 2026), 103.249.201.108 (visto pela primeira vez em 13 de agosto de 2026) e 178.128.14.204 (visto pela primeira vez em 16 de junho de 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.'

A Lumen também nomeia um servidor de gerenciamento suspeito: 185.119.19[.]171 na Itália, que anteriormente hospedava painéis de monitoramento Prometheus e Uptime Kuma, os quais vários C2s contataram. O relatório afirma essa atribuição com confiança moderada.

Em termos de escala, a fonte primária contém dois números que não se reconciliam de forma óbvia, e ambos merecem ser mencionados. As principais conclusões da Lumen afirmam que o PoeLLM "impactou mais de 3.400 servidores vítimas". Um parágrafo do corpo do mesmo relatório afirma que a campanha "impactou quase 2.200 servidores vítimas", e a Lumen descreve separadamente o pico das operações em meados de junho como envolvendo quase 2.200 servidores afetados, com quase 800 ativos por dia. O Hacker News interpreta os números como o total acumulado (mais de 3.400) mais o pico de meados de junho (quase 2.200, quase 800 diários). Qual das duas cifras da Lumen é a contagem cumulativa de vítimas não é explicitado no próprio relatório.

Estabelecido, avaliado e ainda desconhecido

Vale a pena separar três tipos de afirmação neste registo, porque a nota de confiança do arquivo abrange a documentação, e não todas as inferências nele contidas.

• Determinado a partir do próprio malware: o mecanismo C2 baseado em poema, a função de extração e o dicionário, as capacidades do payload (shell remoto, mineradores Iron e XMRig, varredura, implantação de exploits), a lista de IPs de C2, as portas de beacon e os endpoints da Kryptex. Estes vêm da análise de artefactos e do netflow, e constituem a maior parte do relatório.

• Avaliado em um nível de confiança declarado: atribuição a um ator de ameaça de língua italiana, com confiança moderada, com base em comentários em italiano no malware e nas páginas do GitHub do ator, além de indicadores de netflow que apontam para a Itália. O servidor italiano 185.119.19[.]171 como a interface administrativa da botnet, também com confiança moderada. O endpoint LiteLLM como o caminho de exploração "provável". A alegação de que o poema provavelmente foi escrito por IA — uma inferência a partir da preferência de idioma, não uma constatação técnica.

Aberto ou não confirmado: quantas pessoas operam a campanha (desconhecido), se ela tem ligação com qualquer outro grupo ou campanha (nenhuma observada), se o appliance Ivanti Sentry foi um ponto de entrada explorado ou incidental (com ressalvas nos principais pontos, descrito como vítima no corpo do texto), e quão madura é a capacidade de força bruta distribuída. A Lumen afirma que as conquistas do operador além do escaneamento e da criptomineração permanecem sob investigação.

Existe corroboração independente para a reportagem, mas não para a telemetria por trás dela. A CyberScoop e o The Hacker News publicaram ambos os seus próprios relatos em 7 de outubro de 2026, com entrevistas independentes com a Black Lotus Labs, e os seus detalhes — o número de mais de 3.400, o mecanismo do poema, a atribuição em italiano, a ligação à Kryptex — estão alinhados com o relatório do fornecedor. No entanto, ambos remetem para a mesma pesquisa primária. Em 10 de outubro de 2026, nenhuma segunda organização de pesquisa ou regulador publicou uma análise independente do PoeLLM, pelo que nada aqui deve ser lido como reproduzido por outra parte que não a Lumen.

O que mudou após a divulgação

A resposta de maior consequência não veio de um patch. O repositório do GitHub que hospedava o poema “não está mais acessível”, um desdobramento que, segundo a Lumen, “interrompe completamente a campanha”. English disse ao The Hacker News: “Achamos que era o único repositório dele, e foi totalmente interrompido.” A Lumen havia notificado o GitHub, e este aplicou rota nula aos servidores C2 anteriores e ativos do ator, uma mudança que, segundo English, entrou em vigor no início da noite de terça-feira antes da publicação. A causa da remoção do repositório não foi confirmada — English disse ao The Hacker News que “pode ser que o tenham sinalizado por abuso ou que o ator tenha encerrado as atividades e ficado em silêncio naquela plataforma”. Como o C2 era derivado, e não codificado de forma fixa, remover a tabela de consulta remove a capacidade da botnet de encontrar sua própria infraestrutura.

A Lumen afirma que bloqueou todo o tráfego de e para os servidores C2 do PoeLLM durante a investigação e que os clientes do Lumen Defender ficaram protegidos contra esses servidores a partir da descoberta. Sua orientação publicada para defensores é higiene de rotina aplicada a um conjunto incomum de alvos: verificar os registros de rede em relação aos indicadores de comprometimento que ela publicou em seu próprio repositório do GitHub, auditar a exposição externa depois de instalar ferramentas de código aberto, restringir as portas de serviço tanto quanto possível, manter roteadores, firewalls e dispositivos IoT atualizados e reiniciados, e incluir serviços de IA no gerenciamento da superfície de ataque. Ela também aponta para o guia de instalação do Gotenberg, que já avisa os usuários para não expor o serviço à internet — um aviso que as centenas de servidores Gotenberg comprometidos, evidentemente, antecedem.

Nada no registro sugere uma solução técnica para o próprio padrão de tráfego: o poema não era uma vulnerabilidade no GitHub, no Node.js, no LiteLLM ou no Ollama. Era um arquivo de texto público cujo único significado vivia dentro de um binário que pouquíssimas pessoas possuíam.

Por que isto é um registro de incidente de IA

O arquivo registra isto como um incidente com envolvimento de IA confirmado, marcado com INFRA e WEAPON, severidade alta, com dano real registrado — e o dano é concreto, não especulativo: milhares de servidores expostos à internet cujo poder de computação foi roubado e cujo acesso foi reaproveitado, numa campanha que a Lumen descreve como motivada financeiramente, em vez de direcionada aos próprios modelos. O elemento de IA é a seleção de alvos. Servidores que executam gateways de LLM e runtimes de modelos locais são auto-hospedados, frequentemente expostos à internet, muitas vezes instalados sem um ciclo de patches e ficam em hardware que minera com eficiência. O próprio enquadramento da Lumen é que a infraestrutura de IA está se tornando um alvo atraente justamente por causa dessa combinação — serviços expostos com vulnerabilidades conhecidas, dados úteis e hardware rápido e ávido por energia.

O ângulo da arma é o design do C2, e ele se generaliza para além desta campanha. Um domínio ou IP embutido no código pode ser bloqueado, redirecionado para um sinkhole ou usado para fingerprinting de malware. Um endereço derivado cujo único artefato é um documento público de aparência inofensiva não pode, a menos que um analista tenha o binário. A observação que English fez à CyberScoop — de que muitos dos C2s da campanha nunca apareceram em ferramentas de segurança de crowdsourcing — é a medida de quão bem isso funcionou.

Como a disrupção depende de um único repositório, e não de uma falha corrigida, o status da campanha após 7 de outubro é genuinamente incerto, em vez de encerrado: a Lumen diz que a perda do repositório a "interrompe completamente" e, separadamente, diz que três servidores de C2 ainda estavam ativos na publicação. A Lumen publica seus próprios indicadores de comprometimento em um repositório próprio no GitHub, e a severidade, a classificação de confiança e o dano registrado do registro são do arquivo, não do fornecedor.

Este é um registro. O restante dele — as demais divulgações, seus graus de severidade e confiança, e o que os defensores realmente fizeram a respeito delas — o arquivo de incidentes de IAindexa cada um em relação às suas fontes primárias, de modo que uma campanha como esta possa ser lida ao lado dos incidentes que a precederam, e não isoladamente.