Comprometimento em larga escala de pacotes npm em ataque de dia zero à cadeia de suprimentos — Shai Hulud
15 de setembro de 2025
0 minutos de leituraEste incidente ainda está em andamento. Publicaremos atualizações à medida que mais informações forem confirmadas.
Descubra como esse ataque pode ter afetado você com o relatório de dia zero em destaque da Snyk.

Resumo (17 de set. de 2025)
O ataque, que começou por volta de 15 de setembro de 2025 e ficou conhecido como “Shai-Hulud”, é agora identificado como um malware semelhante a um worm, que se espalha por centenas de pacotes npm comprometidos. O objetivo do ataque é roubar e exfiltrar credenciais de nuvem armazenadas em disco, chaves de API e outros segredos, enviando-os por meio de um webhook e de repositórios públicos do GitHub. O ataque também tem como alvo ambientes de CI/CD e usa o GitHub Actions para exfiltrar dados e persistir.
Atualização (16 de set. de 2025)
A equipe de pesquisa de segurança da Snyk está ciente deste ataque contínuo à cadeia de suprimentos e investiga, analisa e reúne ativamente informações sobre as ameaças e os riscos decorrentes desse ataque ampliado a pacotes npm comprometidos. Recomendamos consultar as descobertas nos produtos da Snyk como fonte atualizada.
Atualização inicial (15 de set. de 2025)
Em 15 de setembro de 2025, várias versões maliciosas dos pacotes npm ngx-bootstrap e ng2-file-upload foram publicadas e logo retiradas. Essas versões incluíam um postinstall script (bundle.js) que tentava coletar tokens de desenvolvedores (por exemplo, credenciais do npm, GitHub e serviços de nuvem) e exfiltrar segredos. Considere qualquer sistema que tenha instalado essas versões como totalmente comprometido: remova o pacote, troque todos os segredos usando uma máquina separada e confiável e investigue possíveis movimentações laterais. O GitHub publicou avisos de malware para ngx-bootstrap e ng2-file-upload; não há versões corrigidas das versões adulteradas, pois elas foram removidas.
Desde as descobertas iniciais sobre ngx-bootstrap, também foram detectados sinais de malware no pacote npm @ctrl/tinycolor, baixado mais de 2 milhões de vezes por semana, e o comprometimento se estendeu a outros pacotes npm nos namespaces @ctrl e @nativescript-community, além de pacotes independentes.
O que é ngx-bootstrap e por que isso importa
ngx-bootstrap é uma biblioteca popular de componentes Angular que adapta componentes de interface do Bootstrap para aplicativos Angular. É amplamente usada em projetos de front-end, builds de CI e estações de trabalho de desenvolvedores. Isso significa que um script de instalação malicioso pode ser executado durante um npm install rotineiro, com acesso às máquinas dos desenvolvedores e às credenciais locais. O repositório oficial é mantido pela Valor Software.
O que sabemos até agora
Provavelmente, centenas de pacotes foram afetados
O ataque avançou e comprometeu outros pacotes além de ngx-bootstrap e @ctrl/tinycolor. Também alcançou namespaces de outras organizações, como pacotes da empresa de cibersegurança Crowdstrike no namespace npm @crowdstrike, entre outros.
A lista a seguir não é completa: serve apenas como referência. Recomendamos sempre consultar os produtos, resultados de análise e relatórios da Snyk para ver uma lista abrangente e atualizada de todos os pacotes e versões maliciosos.
Confira outros pacotes afetados na nossa página de pacotes comprometidos do Banco de Dados de Vulnerabilidades.
Pacotes e versões afetados do ngx-bootstrap
Relatos da comunidade documentaram que as seguintes versões do ngx-bootstrap continham o hook malicioso postinstall, que executava bundle.js:
20.0.4, 20.0.5, 20.0.619.0.318.1.4
Além disso, segundo relatos, a versão 20.0.3 continha bundle.js, mas sem uma declaração postinstall. O mesmo relato informa que as versões afetadas foram removidas do npm pouco depois da descoberta.
Observação: no momento da publicação, a página do pacote no npm exibe apenas as versões atuais, que não foram afetadas; as versões maliciosas foram retiradas.
Relatos da comunidade também apontaram que ng2-file-upload “parece ter sido afetado”, mas há poucos detalhes. Fique de olho nas árvores de dependências que incluem pacotes da Valor Software e valide as versões instaladas.
Linha do tempo (UTC)
2025-09-15 — Um relato da comunidade é publicado no repositório
valor-software/ngx-bootstrap, identificandopostinstall/bundle.jsmalicioso em novas versões e mencionando tentativas de exfiltração de tokens e a retirada das versões afetadas do npm.2025-09-15 — O GitHub Advisory Database publica o GHSA-6m4g-vm7c-f8w6 para
ngx-bootstrap(“Malware”), com a orientação de considerar comprometidos os sistemas onde o pacote foi instalado.
Atualizaremos esta página quando surgirem novos fatos verificáveis de mantenedores ou registros.
Avaliação do impacto
Quem foi afetado? Desenvolvedores, agentes de CI e endpoints que instalaram uma das versões listadas ou a receberam por dependências transitivas enquanto ela estava disponível.
O que pode ter sido exposto? Segredos e tokens do ambiente de desenvolvimento (npm, GitHub) e, possivelmente, credenciais de serviços de nuvem (AWS/GCP etc.), conforme o comportamento descrito em
bundle.js.Um indicador de comprometimento (IoC) associado ao malware é um novo fluxo de trabalho do GitHub Actions chamado
shai-hulud.Gravidade: Crítica (execução de código malicioso durante a instalação; roubo e exfiltração de credenciais). O aviso do GitHub instrui explicitamente a tratar o caso como um comprometimento total.
Como detectar malware npm de dia zero com a Snyk?
A Snyk disponibiliza no painel do aplicativo um relatório de dia zero chamado “Ataque à cadeia de suprimentos npm Shai-Hulud — set. de 2025”.
Se você tem um plano Enterprise, pode usar esta visualização para filtrar o relatório e selecionar o dia zero relacionado a esse ataque de malware no npm ou CVEs específicos que queira acompanhar. Assim, você terá uma visão do impacto em todo o sistema, nas suas aplicações e nos repositórios de código monitorados que usam tinycolor, ngx-bootstrap ou outras dependências.

Guia de detecção e triagem
Identifique rapidamente a exposição
Verifique se o seu ambiente baixou versões afetadas:
npm ls ngx-bootstrap(por projeto)Verifique os arquivos de lock (
package-lock.json,pnpm-lock.yaml,yarn.lock) em busca dengx-bootstrap@18.1.4,19.0.3e20.0.4–20.0.6. Anote também as instalações feitas em ou após 2025-09-15.
Verifique se
node_modules/ngx-bootstrap/package.jsoncontém uma entradapostinstalle procure um arquivobundle.jsna raiz do pacote, caso você mantenha arquivos ou caches de fornecedores.
Interrompa a execução de scripts durante a resposta ao incidente
Reinstale com os scripts desativados para impedir a execução de outros hooks de ciclo de vida:
npm ci --ignore-scriptsounpm install --ignore-scriptsVocê também pode definir
ignore-scripts=trueem.npmrc
Verificações forenses
Analise as conexões de saída dos agentes de build e das máquinas de desenvolvedores durante os períodos de instalação.
Verifique o GitHub (listas de tokens de acesso e registros de segurança recentes), os tokens do npm e o uso de credenciais de provedores de nuvem em busca de anomalias. Audite também o GitHub Actions.
Conforme a orientação do GitHub Advisory, considere comprometido qualquer sistema onde uma versão afetada tenha sido instalada.
Contenção e correção imediatas
Remova as versões afetadas
Exclua
node_modulese os arquivos de lock que referenciam versões maliciosas; reinstale versões fixadas e confiáveis.Limpe quaisquer repositórios privados, caches e artefatos que ainda possam conter os arquivos tarball maliciosos.
Troque os segredos em uma máquina limpa
GitHub: revogue tokens de acesso pessoal e chaves SSH; troque os tokens de escopo granular; verifique as autorizações de aplicativos OAuth e dispositivos.
npm: revogue os tokens de registro.
Serviços de nuvem (AWS/GCP etc.): troque as chaves de acesso e as chaves de contas de serviço; invalide todas as credenciais de longa duração.
Reconstrua e implante novamente
Depois de trocar as credenciais, faça o build novamente em ambientes limpos, mantendo os scripts de ciclo de vida desativados no início e reativando-os somente quando necessário.
Comunique-se com usuários e clientes
Se você distribuiu software criado durante o período afetado, avise quem depende dele e recomende atualizações e novos builds.
Sobre ataques à cadeia de suprimentos
Este incidente se soma a outros casos de segurança recentes do mesmo tipo. Já vimos ataques a ambientes de CI e contas de mantenedores que permitiram sequestrar lançamentos:
Comprometimento dos mantenedores do ESLint/Prettier (julho de 2025): phishing e typosquatting (
npnjs.com) roubaram credenciais do npm e distribuíram malware em pacotes populares — mais um lembrete da importância de proteger contas de mantenedores com autenticação de dois fatores.Como agentes de programação com IA foram usados para criar malware no incidente de segurança do pacote malicioso Nx (agosto de 2025)
Ataque à cadeia de suprimentos do npm por meio do comprometimento de um mantenedor de código aberto (setembro de 2025)
Proteja sua cadeia de suprimentos com a Snyk
87% dos entrevistados foram afetados por problemas de segurança na cadeia de suprimentos. Mantenha a sua protegida com a Snyk.
