Skip to main content
Blog
Blog Attacks

O efeito bola de neve: como o Mini Shai-Hulud transforma npm numa rede de distribuição de worm

O Mini Shai-Hulud transformou pacotes npm num ciclo de roubo de credenciais. Veja como a vaga AntV se espalhou e o que as equipas devem monitorizar a seguir.

May 19, 2026 7 min read
Banner escuro da cside mostrando um ataque de cadeia de fornecimento npm do tipo worm
Índice

TL;DR: o worm npm Mini Shai-Hulud

O Mini Shai-Hulud é um aviso sobre como um compromisso npm se espalha depois da primeira publicação maliciosa. O atacante não precisa de comprometer diretamente cada aplicação downstream. Precisa apenas de uma conta de maintainer, um caminho de CI ou um ponto de execução durante a instalação que exponha credenciais.

Em 2026-05-19, a Socket reportou 639 versões de pacotes comprometidas em 323 pacotes únicos numa vaga Mini Shai-Hulud concentrada no ecossistema @antv. O conjunto afetado incluía pacotes de gráficos, grafos, mapas e wrappers para React usados por equipas de engenharia que talvez nunca considerem essas dependências como críticas para a segurança.

O padrão é o problema real. O npm é útil porque centraliza a publicação, o scanning e o takedown. Essa mesma centralização torna-se perigosa quando scripts de ciclo de vida, trusted publishing e credenciais de maintainers são abusados para transformar pacotes numa rede de distribuição.

Sem tempo? Veja o bloqueio de Magecart e skimmers no navegador da cside. Cobre tudo o que se segue numa única implementação.

O que aconteceu na vaga AntV

A vaga AntV usou um ponto de entrada conhecido do npm: execução durante a instalação. A análise da Socket descreve um payload index.js na raiz que modificava o package.json para que o payload corresse durante o preinstall.

Isto importa porque npm install, pnpm install e yarn install não são passos passivos de download. Os scripts de ciclo de vida dos pacotes podem executar código antes de um programador rever o conteúdo do pacote ou correr a aplicação.

O payload estava fortemente ofuscado. A Socket reportou que usava decoding de strings em runtime, exfiltração encriptada, uso da API do GitHub, uso da API do registry npm e um caminho HTTPS fixo de exfiltração. O objetivo era recolher credenciais que permitissem ao malware publicar novamente, não apenas executar uma vez.

Como o Mini Shai-Hulud cria o efeito bola de neve

O payload visa ambientes de desenvolvimento e de CI/CD porque esses ambientes têm poder de publicação. Uma aplicação de navegador pode precisar apenas de um pacote de gráficos, mas a máquina ou workflow que o instala também pode ter acesso a credenciais de npm, GitHub, AWS, Kubernetes, Vault, SSH, Docker ou bases de dados.

Os alvos de credenciais incluem:

  • Tokens do GitHub e material OIDC do GitHub Actions
  • Tokens de publicação npm
  • Credenciais AWS e metadados de instância
  • Ficheiros de contas de serviço Kubernetes
  • Tokens do HashiCorp Vault
  • Ficheiros de autenticação Docker
  • Chaves SSH e chaves privadas
  • Strings de ligação a bases de dados

Assim que o malware encontra credenciais npm utilizáveis, consegue enumerar os pacotes que a vítima pode manter, modificar tarballs de pacotes, adicionar um hook de instalação, aumentar versões e republicar pacotes comprometidos sob uma identidade de maintainer confiável.

Diagrama que mostra o Mini Shai-Hulud a espalhar-se através de credenciais npm comprometidas e pacotes republicados

Porque é que Axios e TanStack importam

A vaga AntV não aconteceu isoladamente. O ecossistema npm tem visto uma série de incidentes em que atacantes abusam de maintainers confiáveis, dependências transitivas e automação de CI/CD.

A análise da Datadog sobre o Axios descreve como um atacante sequestrou uma conta de maintainer do Axios em 2026-03-31 e publicou versões maliciosas do axios que adicionavam a dependência trojanizada plain-crypto-js. Essa dependência descarregava e executava um trojan de acesso remoto multiplataforma durante a instalação.

Diagrama que mostra a cadeia de compromisso npm do Axios através de uma dependência trojanizada

A análise da Endor Labs sobre o TanStack mostra outra lição. O TanStack usava trusted publishing OIDC do npm, o que elimina tokens npm estáticos de longa duração. Mesmo assim, o atacante conseguiu obter um caminho de publicação válido através de mecânicas de repositório e de workflow. O resultado foram versões maliciosas em todo o namespace do TanStack com proveniência aparentemente válida.

Nenhuma ferramenta isolada e defeituosa explica o padrão. O fio condutor comum é a quantidade de autoridade concentrada nos ambientes de desenvolvimento e nos workflows de release.

O npm é ao mesmo tempo ferramenta defensiva e caminho de ataque

O npm dá aos defensores um local central para inspecionar pacotes, sinalizar malware, deprecar releases e revogar tokens. Esse modelo centralizado é melhor do que downloads opacos e isolados.

Mas o npm também dá aos atacantes uma camada central de distribuição. Se um pacote confiável publica uma versão maliciosa, os utilizadores downstream podem obtê-la através de instalações comuns, atualizações de lockfile, rebuilds de CI ou resolução de dependências transitivas.

Funcionalidade npmValor defensivoValor para o atacante
Registry centralPermite scanning, avisos e takedownDá ampla distribuição a versões maliciosas
Scripts de ciclo de vidaSuportam a configuração de pacotes e builds nativosExecutam código do atacante durante a instalação
Contas de maintainerPermitem publicar rapidamenteTransformam uma identidade comprometida em muitos pacotes envenenados
Trusted publishingReduz a exposição de tokens de longa duraçãoPode ser abusado se o workflow ou o limite de confiança for comprometido

A lição é reduzir a confiança automática em cada etapa onde o código executa, não abandonar o npm.

O que as equipas devem fazer agora

Comece pelo ambiente de build e de desenvolvimento. Qualquer máquina ou runner de CI que tenha instalado um pacote afetado deve ser tratado como exposto até as credenciais serem revistas.

  1. Verificar lockfiles e logs do package manager para versões afetadas instaladas em ou depois de 2026-05-19
  2. Rodar credenciais de npm, GitHub, cloud, Vault, SSH, Docker e bases de dados acessíveis a esses sistemas
  3. Auditar pacotes de que é maintainer para detetar versões inesperadas, hooks de instalação ou dependências git adicionadas
  4. Usar instalações estritas por lockfile como npm ci, pnpm install --frozen-lockfile ou yarn install --frozen-lockfile
  5. Desativar scripts de ciclo de vida quando for prático com --ignore-scripts, especialmente em jobs de CI que não precisam de builds nativos
  6. Adicionar cooldowns de dependências ou gates de revisão para que versões de pacotes recém-publicadas não entrem automaticamente em produção
  7. Monitorizar tráfego de saída de CI e de estações de trabalho de programadores para caminhos suspeitos de exfiltração

Estes controlos reduzem a probabilidade de um pacote malicioso se tornar um incidente de publicação em todos os pacotes que um programador mantém.

Onde a cside se encaixa

A cside não é um scanner do registry npm e não substitui o hardening de CI/CD. Continua a precisar de scanning de dependências, lockfiles, higiene de tokens e controlos estritos de release.

A cside cobre a parte da cadeia de fornecimento que executa no runtime do navegador. Muitos sites de produção carregam scripts de terceiros, SDKs, payloads de tag managers, pacotes de analytics e código entregue dinamicamente que nunca se comporta como uma dependência npm fixa. Um pacote ou fornecedor pode parecer legítimo em build time e ainda assim entregar comportamento arriscado ao navegador mais tarde.

A cside monitoriza o comportamento dos scripts enquanto estes executam no navegador do utilizador. Isso inclui alterações de scripts, acesso inesperado a dados, tentativas suspeitas de exfiltração e atividade do lado do navegador que os scanners de dependências não conseguem ver quando o código já está em produção.

A defesa certa é feita em camadas: proteger o caminho do registry, endurecer o CI, rodar segredos rapidamente e monitorizar o comportamento em runtime onde os utilizadores realmente executam o código.

Leitura adicional na cside

Simon Wijckmans
Founder & CEO

Founder and CEO of cside. Previously a product manager on Cloudflare Page Shield (now Cloudflare Client-Side Security). Co-chair of the W3C Anti-Fraud Community Group and a Forbes 30 Under 30 honoree. Building accessible security against client-side attacks, web security is not an enterprise-only problem.

FAQ

Frequently Asked Questions

Mini Shai-Hulud é um padrão de malware de cadeia de fornecimento que abusa de caminhos de publicação confiáveis, scripts de instalação e credenciais roubadas de programadores para infetar mais pacotes.

A Socket reportou 639 versões de pacotes comprometidas em 323 pacotes únicos em 2026-05-19, principalmente no ecossistema AntV. A escala importa porque equipas downstream podem obter versões maliciosas automaticamente através de atualizações normais de dependências.

Não. A cside complementa scanners de dependências e controlos de CI ao monitorizar o comportamento de scripts em runtime no navegador, alterações de scripts e caminhos de exfiltração de dados que ferramentas de build não conseguem ver.

Monitore e proteja seus scripts de terceiros

Gain full visibility and control over every script delivered to your users to enhance site security and performance.

Comece grátis ou experimente o Business com um teste de 14 dias.

Interface do painel cside mostrando monitoramento de scripts e análises de segurança
Related Articles
Agende uma demonstração

Quer ver isso em detalhe com um engenheiro?

Trinta minutos, no seu próprio site. Sem slides.

Vamos mostrar:

Quais scripts de terceiros estão rodando no seu site agora
Como você está em relação aos requisitos 6.4.3 e 11.6.1 do PCI DSS
Qual parte do seu tráfego é de bots e agentes de IA

Prefere só mandar uma pergunta?

Procurando horários livres…

Apenas humanos de verdade. A gente saberia.

Problemas para agendar? Abrir o agendador em uma nova aba

O que você está tentando resolver?

Conte em uma linha e voltamos com algo útil, não com um discurso genérico.

Costumamos ajudar com:

Ver quais scripts de terceiros rodam no seu site
Evidências para PCI DSS 6.4.3 e 11.6.1
Bots, agentes de IA e roubo de contas

Prefere agendar um horário? Escolher um horário