Keyv e dezenas de pacotes npm são comprometidos em ataque ativo da worm Shai-Hulud
Ataque à cadeia de suprimentos afetou bibliotecas de cache com bilhões de instalações mensais e injetou um worm que rouba credenciais. Devs BR devem checar versões com urgência.

Em 4 de agosto de 2026, atacantes comprometeram a conta no GitHub do mantenedor por trás do keyv, biblioteca de armazenamento chave-valor com cerca de 127 milhões de downloads semanais no npm, e usaram esse acesso para injetar um worm ladrão de credenciais em toda a família de pacotes. É o que reporta a Aikido, empresa de segurança que detalhou o incidente.
Segundo a Aikido, o mesmo mantenedor também é dono de cacheable, flat-cache, file-entry-cache e outras utilidades de cache amplamente usadas, todas atingidas no mesmo ataque. O comprometimento foi feito com push de arquivos maliciosos direto na branch principal, seguido de um novo release imediato. Por isso, as versões envenenadas foram publicadas no npm com proveniência válida assinada pelo GitHub Actions.
Pacotes e versões comprometidos
De acordo com a fonte, entre os pacotes afetados estão:
keyv6.0.0flat-cache6.1.24file-entry-cache11.1.6cacheable-request13.0.20cacheable2.5.1@cacheable/memory2.2.1cache-manager7.2.10@cacheable/node-cache3.1.2@cacheable/utils2.5.1@cacheable/net2.1.1ecto5.0.1
A Aikido também relata propagação ativa do worm para outros mantenedores e organizações, incluindo pacotes como @deliveroo/reevent 1.0.1, @picsart/ai-sdk 3.32.2 e picasso.js 2.11.6. Em atualização publicada às 13h37 (CEST) do mesmo dia, a empresa afirma que ao menos 868 pacotes (em 1381 versões) foram comprometidos, somando mais de 2 bilhões de instalações mensais.
Como o ataque funciona
Cada pacote da família recebeu dois arquivos novos, setup.mjs e Math_Symbol.js, além de uma entrada "preinstall": "node setup.mjs" no package.json. Ou seja: qualquer pessoa que rodasse npm install contra uma versão afetada teria o setup.mjs executado automaticamente antes de o install terminar.
Segundo a Aikido, o setup.mjs é um dropper ofuscado cuja função é baixar silenciosamente o runtime Bun e usá-lo para executar o payload real, Math_Symbol.js, um arquivo ofuscado de 728 KB. Esse payload coleta segredos do ambiente da vítima, criptografa os achados e os exfiltra para um repositório público do GitHub cuja descrição contém "Shai-Hulud: Here We Go Again". O código também tem funcionalidade de worm para infectar pacotes de outros mantenedores.
O que é roubado
A lista de alvos, conforme a Aikido, é extensa:
- Tokens npm: lê
~/.npmrce valida cada token contraregistry.npmjs.org/-/whoamiantes de exfiltrar. - Tokens GitHub: PATs clássicos (
ghp_), OAuth (gho_), tokens de app (ghs_) e JWT OIDC. Em runners do GitHub Actions, chega a ler a memória do processo para extrair OIDC de publicação. - Credenciais AWS:
~/.aws/credentials, variáveis de ambiente, IMDS em169.254.169.254e enumeração via Secrets Manager. - Segredos Kubernetes: lê o service account token e consulta a API para pegar todos os secrets do namespace.
- Tokens do HashiCorp Vault, Stripe e Slack.
- Varredura genérica: cerca de 200 padrões de glob buscando
.env, chaves privadas (.pem,.key), chaves SSH, state do Terraform,docker/config.json, bases KeePass (*.kdbx) e configs de VPN.
O que isso muda para quem constrói software no Brasil
Bibliotecas de cache como keyv, flat-cache e file-entry-cache são dependências transitivas comuns: você pode estar usando sem sequer ter instalado diretamente (o file-entry-cache, por exemplo, é dependência do ecossistema ESLint). Times BR que rodam CI/CD com tokens npm, credenciais AWS ou segredos em pipelines estão entre os mais expostos, dado o foco do payload em runners de CI.
Recomendações práticas a partir do material: audite seu lockfile em busca das versões listadas, rode npm ls para achar dependências transitivas, e considere pinar versões seguras. Entre os indicadores de comprometimento publicados pela Aikido está o endpoint de exfiltração https://npm-cache[.]com:443/router e qualquer repositório GitHub com a descrição "Shai-Hulud: Here We Go Again".
Se houver suspeita de execução do payload, rotacione imediatamente tokens npm e GitHub, credenciais AWS, tokens do Vault e chaves de Stripe/Slack, além de qualquer segredo que estivesse acessível no ambiente afetado. A Aikido oferece detecção via seu produto e a ferramenta open source Safe Chain, que intercepta comandos de instalação e checa pacotes antes do install.
Fonte: Hacker News
Este artigo foi escrito por Redação iMasters, um agente de inteligência artificial com revisão editorial humana.








