O endereço do servidor de comando está em um poema no GitHub, e o primeiro deles era um roteador no Brasil

A Black Lotus Labs, da Lumen, publicou em 7 de outubro a análise da campanha que chama de Canto Incognito, operada por um malware batizado de PoeLLM. O alvo são serviços de IA e de desenvolvimento expostos na internet, principalmente LiteLLM e Ollama, com Gotenberg e Gitea também atingidos. O endereço do servidor de comando não está embutido no código: o malware lê um poema guardado em um arquivo chamado dash.css em um repositório do GitHub, pega quatro palavras de posições fixas e converte cada uma em número por um dicionário interno. O primeiro servidor de comando da operação era um roteador doméstico no Brasil.

Ordem de execução para quem tem projeto de IA em produção:

  1. Levantar o que responde na internet nas portas 4000 e 3000. São as duas que a varredura procura, e são os padrões de LiteLLM e Gotenberg.
  2. Conferir a versão do LiteLLM e fechar o caminho da CVE-2026-42271, ligada ao endpoint /mcp-rest/test/connection.
  3. Procurar conexão de saída para as portas 3778, 5001, 5002 e 9999, que é a sinalização dos infectados, e para a porta 81 dos servidores de comando, por onde vem o arquivo.
  4. Procurar processo de mineração e conexão para endpoints da Kryptex, entre eles 5.180.174.162:8029 e 46.21.245.211:7029.
  5. Tratar servidor infectado como reaproveitado: a operação transforma o host comprometido em varredor e em servidor de exploração contra terceiros. O problema deixa de ser consumo de CPU e passa a ser responsabilidade sobre o que sai da sua rede.

Três endereços de comando seguiam ativos na publicação: 92.119.164.50, 103.249.201.108 e 178.128.14.204.

Como o poema vira endereço

O repositório é uma bifurcação do código-fonte do nodejs.org, publicada por um usuário de nome ejejejdfbbebe. Dentro dele há um arquivo chamado dash.css que não contém folha de estilo nenhuma, e sim um poema intitulado On the Nature of Connection. O malware lê esse arquivo, extrai quatro palavras de posições fixas do texto e usa um dicionário embutido para converter cada palavra em um número. Os quatro números, em ordem, formam o endereço IPv4 do servidor de comando.

O exemplo que a Black Lotus Labs documenta é direto: as palavras driver, diode, decryption e string produzem 92.119.165.74. Para mudar de servidor, o operador não precisa atualizar o malware nem redistribuir carga. Basta editar o poema. Entre 13 de abril e setembro de 2026 o texto foi alterado 11 vezes, e só as palavras-chave mudaram. A lógica de decodificação permaneceu igual todo esse tempo.

É um canal de resolução de comando que se esconde bem por três razões. A primeira é que o tráfego é para o GitHub, que ninguém bloqueia e quase ninguém inspeciona. A segunda é que o arquivo tem extensão .css em um repositório que parece ser de um projeto conhecido, então inspeção superficial não acha nada. A terceira é que não existe domínio para derrubar nem endereço fixo para colocar em lista de bloqueio: a lista muda quando o autor edita um poema.

A graça técnica não deve esconder o tamanho do problema. Isso é uma camada de ocultação de resolução, não de execução. Quem detecta por comportamento, e não por indicador, continua vendo um servidor minerar criptomoeda e varrer a internet. A engenhosidade atrasa a atribuição e o bloqueio, não a detecção.

Como o servidor é comprometido

A varredura é de internet inteira, concentrada em duas portas: a 3000, padrão do Gotenberg, e a 4000, padrão do LiteLLM. Alvo vulnerável recebe uma requisição POST montada que faz o próprio servidor baixar um arquivo do servidor de comando na porta 81. A avaliação é de que o caminho de exploração no LiteLLM passa pelo endpoint /mcp-rest/test/connection, associado à CVE-2026-42271.

A partir daí o host infectado recebe shell remoto, instala os mineradores XMRig e Iron, e passa a varrer e explorar em nome da operação, sinalizando para o comando nas portas 3778, 5001, 5002 ou 9999. A própria investigação começou por outro caminho: os pesquisadores chegaram à infraestrutura analisando a CVE-2026-10520, no Ivanti Sentry, que também pode ter sido usada como alvo.

Nada disso exige falha nova ou cadeia sofisticada. Exige um serviço de inferência respondendo na internet sem autenticação, que é o estado padrão de boa parte dos projetos de IA que saíram de prova de conceito sem passar por revisão de segurança.

A infraestrutura, que é onde a história encosta na região

O comando e controle não roda em nuvem contratada. Roda em roteador vulnerável com servidor web Boa exposto, o tipo de equipamento doméstico ou de pequeno escritório que fica anos sem atualização de firmware porque o fabricante parou de publicar.

O primeiro servidor de comando da campanha, identificado em abril, foi 191.37.28.160, um roteador no Brasil. Em maio apareceu um roteador na China, 120.224.114.212. Os pesquisadores avaliam com confiança moderada que o servidor administrativo do operador é 185.119.19.171, na Itália, e atribuem a operação a alguém que fala italiano, com base em comentários no código e no perfil dos alvos dedicados.

Vale ler o papel do Brasil nessa história com precisão, porque ele se repete. A vítima brasileira aqui não é alvo de espionagem nem de extorsão. É infraestrutura gratuita. Um roteador residencial com interface web antiga exposta tem endereço com reputação limpa, fica ligado 24 horas e pertence a alguém que nunca vai olhar o registro de conexão. Para quem opera uma botnet, isso vale mais do que um servidor pago, e não deixa rastro de pagamento.

É o mesmo padrão que apareceu há poucos dias em outra campanha, com site de pequena empresa sul-americana sendo usado como etapa de entrega de malware. Duas histórias diferentes, mesmo insumo escasso: ativo da região com reputação boa e sem dono atento.

O tamanho, com a ressalva que a própria análise deixa

MedidaValor
Servidores vítimas, no corpo da análisecerca de 2.200
Servidores vítimas, no resumo executivo da mesma análisemais de 3.400
Pico de ativos por dia, em meados de junhoperto de 800
Alterações no poema, de 13 de abril a setembro11
Endereços de comando identificados12, três ativos na publicação
Concentração geográfica das vítimasEstados Unidos e Europa Ocidental

A divergência entre 2.200 e 3.400 está no próprio documento e não é reconciliada nele. Vale registrar em vez de escolher o número maior: a ordem de grandeza é de alguns milhares de servidores, e a precisão não muda nenhuma decisão operacional.

O que vem depois da mineração

A atividade recente inclui experimentos de força bruta distribuída contra SSH e contra portal de autenticação. A maturidade dessa parte é incerta, e boa parte dos alvos eram servidores dedicados na Itália, o que sugere teste em terreno conhecido do operador.

Essa é a parte que merece atenção de quem está decidindo prioridade. Mineração é o uso mais barato e menos lucrativo de um servidor comprometido. Quando um operador de botnet de mineração começa a testar força bruta de credencial, ele está procurando o uso seguinte do mesmo acesso. Servidor de inferência guarda chave de provedor de modelo, histórico de prompt e, cada vez mais, credencial de ferramenta interna conectada por protocolo de contexto. O valor disso é muito maior do que o do Monero que a CPU produz.

Caça e contenção

  • Varrer o próprio espaço de endereço público nas portas 3000, 4000, 11434 e nas portas alternativas em que a equipe de dados costuma subir serviço. A resposta útil é a lista, não a estimativa.
  • Alertar em conexão de saída para porta 81 e para as portas de sinalização 3778, 5001, 5002 e 9999 a partir de servidor de aplicação. Servidor de inferência que inicia conexão para porta ímpar é anomalia suficiente.
  • Procurar, no registro de proxy e de DNS, requisição de servidor de produção para o GitHub buscando arquivo isolado. Clonagem de repositório é normal; leitura periódica de um arquivo só, por processo que não é o pipeline, não é.
  • Medir uso de CPU por processo e não só em média. Minerador moderno se regula para não chamar atenção.
  • Em host confirmado, rotacionar chave de provedor de modelo, token de repositório e qualquer segredo acessível pelo processo, antes de reinstalar. Reinstalar primeiro e rotacionar depois é a ordem que deixa o atacante com a chave.
  • Colocar Gotenberg, Gitea e qualquer utilitário de conversão atrás de firewall. São serviços internos que não têm razão para responder na internet, e estão na lista de alvos por isso.

A lição que não é sobre poema

Vale separar o que é curiosidade do que é problema. O poema é curiosidade, e é a parte que vai circular. O problema é que a infraestrutura de IA entrou em produção com o padrão operacional de software interno e a exposição de software de borda. Ferramenta de inferência sobe rápido, é documentada com exemplo que escuta em todas as interfaces, não tem autenticação ligada por padrão e é instalada por quem responde por entrega de produto, não por risco.

Na mesma semana, quatro alvos de infraestrutura de IA cederam em um concurso de segurança e um deles, o LiteLLM, aparece como alvo principal desta botnet. Não é coincidência de agenda. É a mesma camada sendo medida por dois métodos diferentes e dando o mesmo resultado.

Outras correções e falhas do dia

  • NVIDIA

    Travamento sem autenticação no exportador de métrica de GPU exposto

    A CVE-2026-47483 está no DCGM Exporter, o componente que publica métrica de GPU para o Prometheus, e permite derrubar o serviço sem autenticação. Atinge quem deixou a porta de métrica acessível, situação comum em cluster de treinamento e de inferência montado por equipe de dados. É negação de serviço, não execução de código, e ainda assim apaga a observabilidade de quem mais depende dela para notar consumo anômalo de GPU.

  • X.Org

    Doze falhas no servidor gráfico, nove com execução de código

    O projeto X.Org publicou correção para 12 vulnerabilidades, nove delas com potencial de execução de código. Para parque Linux de desktop e para estação de engenharia, é atualização de prioridade alta. Vale também para servidor com ambiente gráfico instalado por hábito e nunca removido, que costuma passar em branco no inventário de superfície.

  • Phishing

    Milk Dragon, o kit que usa desconto falso em rede social, com vítimas em 66 países

    Pesquisadores descreveram nesta semana o kit de phishing batizado de Milk Dragon, que distribui oferta e desconto falsos por rede social e já registra vítimas em 66 países. Kit com alcance global e isca de consumo costuma chegar à América Latina por tradução automática e adaptação de marca local, o que torna detecção por domínio pouco eficaz e detecção por padrão de página bem mais útil.

  • YouTube

    Patrocínio falso e verificação de canal para chegar à conta Google

    Campanha em curso contra criadores de conteúdo usa proposta falsa de patrocínio e página falsa de verificação de canal para capturar credencial de conta Google. O alvo real não é o canal, é a conta, que em muitos casos também é a conta de trabalho de um pequeno negócio, com acesso a Drive, e-mail e gerenciador de anúncios.

Fontes e aprofundamento

  1. Lumen Black Lotus Labs · Canto incognito: tracking the PoeLLM malware, a análise de 7 de outubro, com o esquema de decodificação do poema, as portas de varredura e de sinalização, os roteadores usados como comando, a atribuição e os indicadores.
  2. GBHackers · PoeLLM Malware Hijacks 3,400+ Servers for Crypto Mining and Botnet Expansion, o alcance da campanha, os alvos LiteLLM, Ollama, Gotenberg e Gitea e o reaproveitamento do host infectado como varredor.
  3. OrcaRouter · PoeLLM: a botnet que escondeu seu C2 em um poema no GitHub, leitura em português do mecanismo do poema e do caminho de comprometimento dos serviços expostos.
  4. RuntimeWire · PoeLLM turns exposed AI and developer servers into miners and attack launchpads, o uso dos servidores comprometidos como plataforma de varredura e exploração contra terceiros.
Quantos ativos da sua empresa estão nessa situação? O diagnóstico mede exposição por domínio e mostra o que tratar primeiro. Solicitar diagnóstico.