1 pontos por GN⁺ 2025-11-25 | 1 comentários | Compartilhar no WhatsApp
  • 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

 
GN⁺ 2025-11-25
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

    • Explica que mesclou os comentários relacionados em um só lugar. Mesmo que os links sejam diferentes, se o tema da discussão for substancialmente o mesmo, isso se enquadra no critério de mesclagem. Como o segundo link tinha informações adicionais, ele foi exibido junto no topo do original
    • Menciona que este artigo tem bastante informação adicional
    • Sugere usar “Dup” para reenvios do mesmo link e “See also” para textos com links diferentes, mas sobre o mesmo incidente
    • Enfatiza que não é duplicado, mas sim um artigo diferente sobre o mesmo incidente
    • Também apresenta como referência Shai-Hulud Returns: Over 300 NPM Packages Infected (helixguard.ai)
  • 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 Comming – Postman, Zapier, PostHog All Compromised via NPM
    mas a grafia correta é Shai-Hulud

    • Mas o nome do repositório para o qual os segredos foram realmente enviados era Sha1-Hulud: The Second Coming, o que parece ter causado a confusão
    • O próprio worm está publicando segredos no GitHub com o nome sha1-hulud
      Link da busca relacionada no GitHub
    • Também há quem diga que “coming” deveria ter apenas um m, perguntando se talvez fosse um trocadilho intencional
    • Diz que não entende os downvotes e explica que o ataque real não tem relação com o algoritmo SHA1, e que o nome também não foi pensado como essa paródia