Ataque em cadeia compromete pacotes npm
16 de Setembro de 2025

Pesquisadores de segurança identificaram pelo menos 187 pacotes npm comprometidos em um ataque à cadeia de suprimentos que ainda está em curso.

A ameaça envolve um payload malicioso com capacidade de autopropagação para infectar outros pacotes.

A campanha coordenada, batizada de "Shai-Hulud", começou ontem com o comprometimento do pacote @ctrl/tinycolor, que possui mais de 2 milhões de downloads semanais.

Desde então, o ataque se expandiu de forma significativa, abrangendo também pacotes publicados sob o namespace do CrowdStrike no npm.

Ontem, Daniel Pereira, engenheiro sênior de backend, alertou a comunidade sobre essa grande operação contra o maior registro de JavaScript do mundo, o npmjs.com.

"Há um malware se espalhando ao vivo no npm enquanto você lê isso", escreveu Pereira, recomendando que os desenvolvedores evitem instalar as versões mais recentes do @ctrl/tinycolor.

Nas últimas 24 horas, ele tentou chamar a atenção do GitHub por canais discretos para discutir o incidente, já que muitos repositórios foram afetados e a divulgação pública poderia colocar usuários em risco.

"Mas é muito difícil contatar o GitHub.

Segredos estão sendo expostos em repositórios, isso é sério", destacou o engenheiro.

A empresa de segurança focada em cadeia de suprimentos, Socket, iniciou uma investigação e encontrou pelo menos 40 pacotes comprometidos.

Hoje, pesquisadores da Socket e da Aikido identificaram novos pacotes, elevando o total para pelo menos 187.

O StepSecurity também divulgou uma análise técnica detalhada, com trechos de código desofuscados e diagramas do fluxo do ataque, confirmando amplamente os dados iniciais da Socket.

Entre os pacotes afetados, destacam-se vários publicados pela conta crowdstrike-publisher no npm, vinculada ao CrowdStrike.

"Após detectar diversos pacotes npm maliciosos no registro público, removemos rapidamente os arquivos e realizamos a rotação proativa de nossas chaves nos registros públicos", informou um porta-voz do CrowdStrike.

"Esses pacotes não são usados no sensor Falcon, nossa plataforma não foi impactada e os clientes permanecem protegidos. Estamos trabalhando com o npm e conduzindo uma investigação minuciosa."

As versões comprometidas contêm um mecanismo de autopropagação que mira outros pacotes mantidos pela mesma pessoa.

O malware baixa os pacotes do mantenedor, modifica o arquivo package.json, injeta um script bundle.js, recompila o pacote e o republica, permitindo a "trojanização automática de pacotes a jusante", segundo os pesquisadores da Socket.

O script bundle.js utiliza o TruffleHog, uma ferramenta legítima para escanear segredos expostos em repositórios e códigos, usada normalmente para detectar vazamentos acidentais de chaves, tokens e senhas.

No entanto, o malware explora o TruffleHog para vasculhar o sistema em busca de tokens e credenciais de nuvem.

O funcionamento malicioso inclui validar essas credenciais de desenvolvedor e de integração contínua (CI), criar workflows não autorizados de GitHub Actions dentro de repositórios e exfiltrar as informações para um webhook codificado (hxxps://webhook[.]site/bb8ca5f6-4175-45d2-b042-fc9ebb8170b7), detalham os pesquisadores.

O nome “Shai-Hulud” tem origem nos arquivos de workflow shai-hulud.yaml encontrados no malware das versões comprometidas, uma referência aos gigantescos vermes de areia da série literária “Dune”, de Frank Herbert.

“Embora não seja uma referência exclusiva, o uso do nome reforça que o atacante batizou intencionalmente a campanha como ‘Shai-Hulud’”, explicaram Kush Pandya e Peter van der Zee, pesquisadores da Socket.

Os novos pacotes descobertos hoje apresentam o mesmo comportamento malicioso, replicando a cadeia de ações do bundle.js: baixar e executar o TruffleHog legítimo, buscar segredos e credenciais na máquina, verificar a validade dessas credenciais, inserir workflows de GitHub Actions não autorizados e exfiltrar informações para o webhook.

O que torna esse ataque à cadeia de suprimentos especialmente preocupante, além de comprometer pacotes populares, é seu momento de ocorrência.

Ele vem logo após dois ataques similares de grande repercussão ocorridos no mesmo mês.

Na primeira semana de setembro, um malware com inteligência artificial afetou 2.180 contas no GitHub, em um ataque batizado de "s1ngularity".

Embora a origem do ataque atual ainda seja investigada, especialistas como Pereira suspeitam que os responsáveis pela invasão atual possam estar ligados a esse grupo.

Além disso, no início do mês, os mantenedores dos pacotes chalk e debug também foram vítimas de phishing, resultando no comprometimento desses projetos em um ataque paralelo.

As consequências dessas investidas impactam profundamente a cadeia de dependências, afetando até projetos amplamente utilizados, como o Google Gemini CLI.

A equipe responsável pelo Google Gemini emitiu um comunicado no último fim de semana, ressaltando:

“Queremos deixar claro que o código-fonte do Gemini CLI não foi comprometido e nossos servidores continuam seguros”, afirmou Ryan J. Salva, diretor sênior de gerenciamento de produtos do Google.

“No entanto, esse incidente pode ter atingido usuários que instalaram ou atualizaram o Gemini CLI via npm durante o período do ataque.

Estamos fornecendo detalhes sobre o ocorrido, esclarecendo quem foi afetado e orientando os usuários sobre as medidas necessárias para proteger seus sistemas.”

Esses ataques evidenciam a fragilidade do atual ecossistema de desenvolvimento de software, onde uma única pull request maliciosa ou uma conta de mantenedor comprometida pode causar um efeito dominó em centenas de projetos.

Embora empresas como Google e CrowdStrike garantam que suas plataformas principais permanecem intactas, o incidente destaca a urgência de os desenvolvedores reforçarem a segurança de suas pipelines e processos de build.

Usuários afetados devem auditar seus ambientes e registros para identificar sinais de comprometimento, rotacionar todas as credenciais e tokens de CI/CD, além de revisar suas árvores de dependências para detectar versões maliciosas.

Práticas como pinagem de dependências em versões confiáveis e limitar o escopo das credenciais de publicação continuam sendo essenciais para reduzir riscos de comprometimento a nível de pacote.

Publicidade

Traçamos um caminho para você ir do zero ao avançado em hacking

Conheça a Solyd One, e tenha acesso a todos os cursos de segurança ofensiva da Solyd, todas as certificações práticas, incluindo a SYCP, 2 CTFs anuais com prêmios de até 30 mil reais, dezenas de laboratórios realísticos, suporte, comunidade e muito mais. Saiba mais...