Malware PolinRider volta em 10 pacotes npm invadidos e usa blockchain Ethereum para distribuir código malicioso

Carregadores de JavaScript ocultos em 12 versões de 10 pacotes npm invadidos vinculam o comprometimento à atividade do PolinRider documentada anteriormente. Investigadas em 4 de novembro de 2026, as versões usam transações Ethereum para descobrir servidores remotos de carga maliciosa e executar o código baixado dentro de ambientes de desenvolvedores, sistemas de build ou aplicações. A Sonatype registra o achado como sonatype-2026-010515.guide. Diferentemente dos ataques à cadeia de suprimentos disparados na instalação, esses pacotes não contêm hooks de instalação ou pós-instalação.


Mayura Kathir Segunda - 09 de Novembro de 2026 às 10:06
GBHackers

Carregadores de JavaScript ocultos em 12 versões de 10 pacotes npm (gerenciador de pacotes do Node.js) invadidos vinculam o comprometimento à atividade do PolinRider documentada anteriormente.

Investigadas em 4 de novembro de 2026, as versões usam transações na rede Ethereum para descobrir servidores remotos de carga maliciosa e executar o código baixado dentro de ambientes de desenvolvedores, sistemas de build ou aplicações. A Sonatype registra o achado como sonatype-2026-010515.guide.

Diferentemente dos ataques à cadeia de suprimentos disparados na instalação, esses pacotes não contêm hooks de instalação ou pós-instalação (scripts executados automaticamente pelo npm).

Seu código malicioso pode ser executado quando um ponto de entrada afetado é carregado. O server-hemera-mongo ativa a injeção durante a inicialização da aplicação. Desabilitar os scripts de instalação do npm, portanto, não neutraliza essa ameaça.

Os carregadores consultam endpoints públicos de RPC (chamada de procedimento remoto) da Ethereum, recorrendo ao Blockscout quando necessário, em busca de transações enviadas pela carteira 0x1eef0849eda15d87f64e51c73c8442cf3c8bcef3.

Eles interpretam os primeiros quatro bytes do endereço do destinatário como um endereço IPv4 (protocolo de internet versão 4) primário e os quatro seguintes como um endereço secundário. Assim, a Ethereum fornece o ponteiro para o servidor, mas não hospeda o próprio payload executável.

O malware solicita /0x/cls e /0x/ls usando HTTP (protocolo de transferência de hipertexto) puro sobre a porta 443 do TCP (protocolo de controle de transmissão). Após decodificar por XOR (ou exclusivo) o JavaScript recebido, executa o estágio /0x/cls por meio de eval dentro da aplicação e por meio de um processo node -i separado.

O estágio /0x/ls roda apenas em um processo filho separado, recebendo o código pela entrada padrão em pipe.

Esse mecanismo de dead drop (depósito morto) permite que os operadores redirecionem sistemas infectados publicando outra transação, sem a necessidade de atualizar os pacotes comprometidos. Bloquear um servidor anunciado não impede a descoberta posterior de uma infraestrutura substituta.

Ataque do malware PolinRider

Seis versões afetadas ocultam seus carregadores dentro de eval(atob(...)). Outras seis reconstroem o código incorporado por meio de permutação de caracteres e invocam indiretamente o construtor Function do JavaScript.

A segunda variante evita assinaturas óbvias de Base64 e eval, mas mantém a mesma carteira, os mesmos caminhos de recuperação e as mesmas chaves XOR.

A escolha do ponto de entrada é decisiva. No caso do cdeops, o caminho do cliente CommonJS chega ao client.js injetado, enquanto sua importação como módulo ES corresponde ao client.mjs separado.

A avaliação de exposição precisa determinar qual arquivo foi de fato executado, em vez de tratar a mera presença da dependência como prova de comprometimento.

A Sonatype Research Labs documentou a mesma carteira Ethereum e os caminhos de estágio correspondentes nos carregadores do PolinRider encontrados em repositórios comprometidos do GitHub.

A Greenflagged decodificou o endereço 95.135.181.151 a partir de transações da carteira em 3 de novembro. A GitGuardian já havia identificado esse endereço como infraestrutura de fallback (reserva).

Essas sobreposições sustentam a ligação com o PolinRider, mas não estabelecem operadores em comum com o GhostAction.

A Greenflagged recuperou posteriormente estágios que instalam um trojan de acesso remoto (RAT) para Node e mecanismos de persistência por meio do arquivo lib/cli.js do npm e de arquivos de inicialização de aplicações de desktop.

A análise identificou alvos como VS Code, Cursor, Discord e GitHub Desktop, o que torna a simples remoção da dependência insuficiente após a execução.

As equipes devem inspecionar dependências diretas e transitivas, lockfiles, espelhos, caches e registros de build de todas as 12 versões.

Correlacione os pontos de entrada afetados com telemetria de processos e tráfego de saída, especialmente processos Node separados e HTTP inesperado na porta 443.

Se código injetado foi executado, isole o host, preserve as evidências, investigue mecanismos de persistência e rotacione as credenciais acessíveis. A remoção do pacote npm não reverte um comprometimento de host já estabelecido.

PolinRider npm Ethereum

FONTE

GBHackers