Seja bem-vindo
Belo Horizonte,15/05/2026

  • A +
  • A -

Hackers publicam 84 pacotes maliciosos no npm em ataque para roubar credenciais

tecmundo.com.br
Hackers publicam 84 pacotes maliciosos no npm em ataque para roubar credenciais

Um grupo de atacantes publicou 84 versões maliciosas de pacotes oficiais do TanStack no npm, o maior repositório de código JavaScript do mundo. Ocorrido na última segunda-feira (11), o ataque contaminou ferramentas amplamente usadas em projetos de software ao redor do mundo e faz parte de uma campanha chamada Mini Shai-Hulud. Anteriormente, essa mesma campanha também comprometeu pacotes da OpenSearch, Mistral AI, UiPath e Guardrails AI.

O TanStack é um conjunto de bibliotecas open source usado para construir aplicações web. O pacote mais popular afetado, o @tanstack/react-router, tem mais de 12 milhões de downloads semanais. Nesse contexto, o ataque não envolveu roubo de senhas de nenhum desenvolvedor do projeto. Na verdade, o atacante criou uma cópia do repositório oficial no GitHub e abriu um pull request com código malicioso.

TanStack.png
O monitoramento da StepSecurity capturou em tempo real as conexões feitas durante a instalação do @opensearch-project/opensearch 3.8.0. Duas chamadas legítimas ao registry.npmjs.org e duas maliciosas, o bun.exe conectando ao domínio C2 git-tanstack.com e à API do GitHub para propagar o worm. Imagem: Socket.

O simples ato de abrir esse pull request disparou automaticamente os scripts de CI/CD do projeto. Esses scripts são rotinas automatizadas de teste e construção de software que rodam em servidores do GitHub.

O malware aproveitou uma vulnerabilidade conhecida nos pipelines do GitHub Actions para envenenar o cache de compilação. A partir daí, conseguiu extrair da memória do servidor o token OIDC, que é a credencial usada para autenticar publicações confiáveis no npm.

Com esse token em mãos, o atacante publicou as versões maliciosas como se fosse o próprio projeto TanStack.

TanStack (1).png
O fluxo completo do ataque. O malware ativou durante a fase de build, extraiu o token OIDC e publicou os pacotes infectados diretamente no npm. O passo oficial de publicação do workflow foi pulado porque os testes falharam, mas os pacotes maliciosos já estavam no ar com atestações válidas. Imagem: Socket.

O que o malware faz depois de instalado

Qualquer desenvolvedor ou sistema de CI/CD que executou o comando npm install com uma versão comprometida deve considerar o ambiente infectado. O payload, basicamente o código malicioso embutido nos pacotes, lê arquivos de mais de 100 caminhos no sistema.

Entre os alvos estão credenciais de serviços de nuvem como AWS, Azure e Google Cloud, chaves SSH, carteiras de criptomoeda, histórico do terminal e configurações de ferramentas de desenvolvimento, incluindo o Claude Code.

O histórico do terminal é alvo porque desenvolvedores frequentemente colam tokens e senhas diretamente em comandos.

TanStack (2).png
A ferramenta StepSecurity bloqueou automaticamente um pull request de demonstração que incluía o @tanstack/react-router 1.169.8, identificando o pacote como comprometido e sinalizando que a versão tinha menos de três dias de publicação. Imagem: Socket.

Em ambientes do GitHub Actions, o malware vai além. Ele lê a memória do processo interno do runner usando o arquivo /proc/PID/mem do Linux. Isso permite extrair todos os secrets configurados no workflow, incluindo os que estão mascarados nos logs.

O worm se propaga sozinho

O que torna esse ataque especialmente grave é a capacidade de autopropagação. Após roubar as credenciais, o malware usa os tokens do npm para publicar versões infectadas de todos os outros pacotes controlados pelo mesmo mantenedor comprometido.

Isso porque ele faz uma busca no registro do npm por todos os pacotes vinculados ao usuário afetado e republica cada um deles com o payload embutido. É o comportamento de um worm de verdade.

TanStack (3).png
A ferramenta Socket AI Scanner classificou o pacote @tanstack/history v1.161.9 com risco crítico e pontuação zero. Entre os sinais detectados estavam código ofuscado, acesso a variáveis de ambiente e adição de arquivo suspeito, todos presentes no payload malicioso. Imagem: Socket.

Revogar o token apaga o disco

O malware instala um mecanismo de persistência que sobrevive a reinicializações do sistema, registrado como um serviço do sistema operacional. Esse serviço monitora continuamente se o token roubado do npm foi revogado.

Se o token for revogado antes de a máquina ser isolada, o serviço executa uma rotina de limpeza destrutiva que apaga o disco. O token aparece no painel do npm com a descrição IfYouRevokeThisTokenItWillWipeTheComputerOfTheOwner, servindo ao mesmo tempo como aviso e ameaça.

A recomendação das empresas de segurança Socket e StepSecurity é isolar e fazer uma imagem forense da máquina antes de qualquer revogação de credenciais.

risco-seguranca.jpg
O ataque ao TanStack não exigiu roubo de senhas de nenhum mantenedor. O pipeline de publicação foi sequestrado de dentro, usando credenciais geradas pelo próprio sistema de CI/CD do projeto.

Provenance válido não garantiu segurança

Os pacotes comprometidos chegaram a carregar atestações SLSA Build Level 3 válidas, o mais alto nível de verificação de origem de pacotes de software. Isso foi possível porque o malware usou o próprio token OIDC roubado junto à infraestrutura legítima do Sigstore para gerar as assinaturas.

Acompanhe o TecMundo nas redes sociais. Para mais notícias de segurança e tecnologia, inscreva-se em nossa newsletter e canal do YouTube.




COMENTÁRIOS

Buscar

Alterar Local

Anuncie Aqui

Escolha abaixo onde deseja anunciar.

Efetue o Login

Baixe o Nosso Aplicativo!

Tenha todas as novidades na palma da sua mão.