- Shai Hulud 2.0 voltou a atacar o ecossistema npm, infectando pacotes de projetos importantes como Zapier, ENS Domains, AsyncAPI, PostHog e Postman
- O malware é executado automaticamente durante a instalação e rouba segredos de sistemas de desenvolvedores e ambientes de nuvem
- Em sistemas infectados, usa o TruffleHog para encontrar chaves de API, tokens e senhas, enviando-os para repositórios públicos no GitHub
- Nesta rodada, o ataque se expandiu em relação à anterior, com até 100 pacotes infectados e incluindo uma função de exclusão de arquivos do diretório home em caso de falha de autenticação
- Trata-se de um ataque em larga escala à cadeia de suprimentos que ameaça o modelo de confiança do ecossistema npm, destacando a necessidade de revisar e trocar segredos em todas as equipes de desenvolvimento
Visão geral da campanha Shai-Hulud
- Shai-Hulud é um malware em forma de worm autorreplicante no ecossistema npm, que se espalha rapidamente por meio de ambientes de desenvolvimento infectados
- Após a infecção, usa o TruffleHog para buscar segredos expostos, como chaves de API e tokens
- As informações coletadas são enviadas para repositórios públicos no GitHub e, em seguida, novos pacotes maliciosos são publicados no npm para ampliar a propagação
- Os atacantes batizaram esta ofensiva de “Second Coming”
- O ataque foi retomado em um momento alinhado ao aviso do npm sobre a desativação de tokens legados em 9 de dezembro
Linha do tempo do ataque
- 27 de agosto: publicação do relatório sobre a campanha S1ngularity
- 16 de setembro: primeiro ataque do Shai-Hulud
- 18 de setembro: divulgação da análise técnica e do comportamento do payload
- 24 de novembro: ocorre o segundo ataque (Second Coming) pouco antes da desativação de tokens no npm
Mudanças na forma do ataque
- Nesta rodada, o ataque instala o runtime Bun por meio do arquivo
setup_bun.js e depois executa bun_environment.js
- Cria repositórios do GitHub com nomes aleatórios para enviar os dados roubados
- O número de pacotes-alvo infectados aumentou de 20 para 100
- Em caso de falha de autenticação no GitHub ou npm, inclui uma função para apagar todo o diretório home do usuário
Pacotes infectados
- Ao todo, 492 pacotes npm foram infectados, com 132 milhões de downloads mensais
- Principais projetos afetados: Zapier, ENS Domains, AsyncAPI, PostHog, Postman e Browserbase
- Exemplos de pacotes:
@zapier/zapier-sdk, @ensdomains/ensjs, @asyncapi/cli, posthog-js, @postman/pm-bin-linux-x64 etc.
Vazamento de segredos
- O malware envia segredos para repositórios no GitHub com a descrição “Sha1-Hulud: The Second Coming”
- Até o momento, foi confirmada a exposição de mais de 26.300 repositórios
Erro dos atacantes
- Em alguns pacotes, apenas
setup_bun.js foi incluído, sem bun_environment.js, o que impediu a execução completa do worm
- Isso limitou o alcance da propagação
Vetor de infecção e ponto inicial
- A infecção inicial começou em 24 de novembro de 2025 às 03:16:26 GMT+0, nos pacotes
go-template e em 36 pacotes relacionados ao AsyncAPI
- Depois, propagou-se para PostHog (04:11:55) e Postman (05:09:25)
- Foi identificado no repositório do AsyncAPI CLI um branch malicioso com código distribuído posteriormente
Impacto potencial
- A execução automática durante a instalação permite acesso a ambientes locais de desenvolvedores, sistemas de build e credenciais de nuvem
- Os segredos roubados podem viabilizar novos comprometimentos de contas e publicação de pacotes maliciosos adicionais
- Isso representa uma ameaça grave à segurança da cadeia de suprimentos baseada em confiança do ecossistema npm
Recomendações de resposta de segurança
- Auditoria completa das dependências npm relacionadas a Zapier e ENS
- Rotação total de segredos de GitHub, npm, nuvem e CI/CD
- Buscar no GitHub repositórios com a descrição “Sha1-Hulud: The Second Coming”
- Desativar scripts npm de
postinstall em ambientes de CI
- Fixar versões de pacotes e ativar MFA, além de bloquear pacotes maliciosos com ferramentas como Safe-Chain
Conclusão
- Shai-Hulud 2.0 é um novo ataque em larga escala à cadeia de suprimentos do npm, afetando
centenas de pacotes populares e milhares de repositórios no GitHub
- Todas as equipes de desenvolvimento devem agir imediatamente para validar dependências, trocar segredos e bloquear scripts de instalação automática
1 comentários
Comentário no Hacker News
Vale mencionar o Bubblewrap (bwrap). Essa ferramenta pode eliminar a maioria dos vetores de ataque que podem surgir no ambiente npm/node ou, no mínimo, limitar o dano em caso de execução arbitrária de código
Não é uma solução perfeita, mas acho muito melhor do que contêineres rootless do Podman quando usada com um script wrapper simples
Link do Bubblewrap no GitHub
Compartilho um script escrito em Python. Ele verifica se, em algum dos meus repositórios, os arquivos lock do pnpm ou npm contêm pacotes comprometidos
Link do script
No começo pareceu duplicado (Dup), mas na verdade era outro artigo
Link relacionado
Informa que a discussão duplicada está acontecendo aqui
Aponta que há um erro de digitação no título. O título atual no HN é
Sha1-Hulud: The Second Coming, o que parece ter causado a confusãosha1-huludLink da busca relacionada no GitHub