
ChainDrop npm infecta pacotes em ataque massivo
O malware ChainDrop npm comprometeu mais de 1.300 pacotes no registro Node Package Manager, somando cerca de 2 bilhões de downloads mensais. Segundo a BleepingComputer, o ataque à cadeia de suprimentos foi divulgado em 4 de agosto de 2026 e atingiu bibliotecas populares usadas por desenvolvedores, incluindo Keyv, Cacheable, flat-cache e file-entry-cache. O incidente começou após o comprometimento da conta GitHub de um mantenedor e se espalhou por fluxos legítimos de publicação, dificultando a detecção inicial.
Tabela de conteúdos
Como o ChainDrop npm se espalhou
O ChainDrop npm é descrito por empresas de segurança como um worm baseado no Shai-Hulud, com capacidade de autopropagação. A operação começou quando o invasor obteve acesso à conta GitHub ligada ao mantenedor do Keyv. A partir daí, arquivos maliciosos foram enviados diretamente aos branches principais dos projetos e novas versões foram publicadas no npm.
Esse detalhe é importante: como os pacotes foram compilados e publicados por workflows legítimos do GitHub Actions, as versões contaminadas carregavam informações válidas de provenance. Em outras palavras, pareciam lançamentos confiáveis para ferramentas que verificam a origem do pacote, embora contivessem código malicioso.
Qualquer ambiente que executou npm install em uma versão afetada deve ser tratado como comprometido, mesmo que o pacote tenha sido removido depois.
Pacotes afetados e organizações citadas
Entre os pacotes npm comprometidos estão utilitários de cache amplamente usados, como Keyv e Cacheable, além de flat-cache e file-entry-cache. A campanha também alcançou pacotes associados a organizações como Deliveroo, Ornikar, OneReach, Picsart, Qlik e ServiceTitan, ampliando o risco para projetos corporativos e pipelines de CI/CD.
A Aikido informou ter identificado “ao menos 868 pacotes, em 1.381 versões, comprometidos pelo worm”. Já a BleepingComputer relata que o número total ultrapassa 1.300 pacotes, com 2 bilhões de downloads mensais combinados. Como a investigação ainda está em andamento, listas de versões maliciosas podem crescer nos próximos dias.
Arquivos maliciosos e execução automática
Os pacotes envenenados incluíam dois componentes principais: o dropper setup.mjs e o script Math_Symbol.js, usado para roubo de informações. Também foi adicionada ao package.json a entrada "preinstall": "node setup.mjs", fazendo o código rodar automaticamente antes do término da instalação.
“Qualquer pessoa que executou npm install contra uma versão afetada teria o setup.mjs executado automaticamente antes da conclusão da instalação.”
Pesquisadores da Aikido
O setup.mjs baixa o runtime JavaScript Bun a partir de releases oficiais no GitHub para executar o payload Math_Symbol.js. Depois, remove o diretório temporário usado durante a execução. A BleepingComputer também observou pacotes contendo o script math_init.js, com função semelhante.

Quais credenciais o malware tenta roubar
O ChainDrop npm procura credenciais em estações de desenvolvedores, runners de CI/CD e ambientes de nuvem. Antes de roubar tokens npm, o malware valida cada token em tempo real contra registry.npmjs.org/-/whoami. A coleta inclui variáveis de ambiente, arquivos locais de configuração, chaves privadas e segredos de serviços populares.
- Tokens GitHub PAT, workflow tokens e chaves
ghp_,gho_eghs_. - Tokens npm iniciados por
npm_e segredos do GitHub Actions. - Credenciais AWS, SSM Parameter Store com
WithDecryption: truee Secrets Manager. - Secrets Kubernetes, tokens HashiCorp Vault e dados KV acessíveis.
- Credenciais de bancos de dados, Stripe, Slack, Twilio, Azure e GCP.
Indicadores de comprometimento e domínio suspeito
Segundo a Wiz, o domínio npm-cache[.]com está sendo usado para exfiltração de dados e deve ser tratado como forte indicador de comprometimento. As empresas Wiz , StepSecurity , Aikido , Socket e Ox Security publicaram listas de pacotes afetados, hashes de arquivos, artefatos maliciosos e dados de rede para investigação.
| Elemento | Risco | Ação recomendada |
setup.mjs | Execução no preinstall | Auditar versões instaladas |
Math_Symbol.js | Infostealer ofuscado | Verificar hashes e artefatos |
npm-cache[.]com | Exfiltração de dados | Bloquear e revisar logs |
O que administradores devem fazer agora
Se uma versão afetada foi instalada, a orientação é presumir comprometimento do workstation ou runner de CI/CD. Remover o pacote não basta, porque o ChainDrop npm pode ter coletado tokens reutilizáveis e segredos capazes de abrir acesso a repositórios, pacotes e ambientes de nuvem.
- Reconstrua sistemas a partir de backups seguros ou imagens limpas.
- Rotacione todos os tokens, chaves e credenciais acessíveis no ambiente.
- Revise logs de npm, GitHub, cloud, Kubernetes e Vault.
- Procure commits inesperados, releases não autorizadas e alterações em workflows.
- Adote allowlisting de dependências, checagem de integridade e controles de provenance.
Por que o caso preocupa a comunidade JavaScript
O incidente mostra como um ataque à cadeia de suprimentos pode transformar pacotes confiáveis em vetor de infecção. No ecossistema npm, uma dependência transitiva popular pode chegar a milhares de projetos rapidamente. Quando o malware usa automação, workflows válidos e autopropagação, a resposta precisa combinar engenharia, segurança de identidade e monitoramento contínuo.
Perguntas frequentes sobre ChainDrop npm
O que é o ChainDrop npm?
É um worm infostealer em pacotes npm. Ele usa scripts preinstall para roubar credenciais e se espalhar por projetos e mantenedores.
Quais pacotes npm foram citados no ataque?
Keyv, Cacheable, flat-cache e file-entry-cache estão entre os citados. Listas atualizadas foram publicadas por Aikido, Wiz, Socket, StepSecurity e Ox Security.
Remover o pacote comprometido resolve o problema?
Não necessariamente. Se o preinstall foi executado, tokens e segredos podem ter sido roubados. O ambiente deve ser reconstruído e as credenciais rotacionadas.
Qual é o principal indicador de comprometimento?
A Wiz aponta npm-cache[.]com como forte IOC. Também devem ser verificados scripts setup.mjs, Math_Symbol.js, math_init.js e hashes divulgados pelas empresas de segurança.
Considerações finais
O caso ChainDrop npm reforça que segurança de dependências não se limita a verificar nomes conhecidos. Equipes devem combinar controle de versões, revisão de releases, rotação de segredos, monitoramento de CI/CD e validação contínua de pacotes. Como a campanha ainda evolui, acompanhar os IOCs e as listas de pacotes comprometidos é essencial para reduzir danos.
