🔓👿 Pacotes NPM com 2 bilhões de downloads semanais são comprometidos

Hackers sequestram pacotes NPM
Imagem ilustrativa

Um ataque de phishing direcionado a um mantenedor resultou em uma das maiores brechas de segurança recentes no ecossistema JavaScript: pacotes do NPM com mais de 2 bilhões de downloads semanais foram comprometidos por hackers. O incidente causou alarme entre desenvolvedores de todo o mundo, afetando bibliotecas amplamente utilizadas em projetos web, mobile e corporativos.

Segundo as investigações preliminares, os criminosos conseguiram acesso às credenciais de um dos mantenedores por meio de uma campanha de phishing cuidadosamente elaborada. Com isso, conseguiram publicar novas versões de pacotes legítimos contendo código malicioso disfarçado em arquivos index.js, usados como ponto de entrada principal em muitos projetos.

O payload injetado atuava como interceptador no ambiente do navegador, com o objetivo de monitorar e potencialmente desviar transações envolvendo criptomoedas, como Bitcoin, Ethereum e outras altcoins populares. A sofisticação do ataque — silencioso, furtivo e disfarçado de forma quase invisível entre dependências legítimas — mostra o grau de vulnerabilidade que repositórios abertos como o NPM enfrentam hoje.

Alvo: o elo mais fraco da cadeia

Esse tipo de ataque não explora brechas técnicas no NPM em si, mas sim nas pessoas que o mantêm. Ao atacar o desenvolvedor individual com e-mails fraudulentos e clones perfeitos da interface do GitHub ou do próprio NPM, os invasores conseguiram enganar o mantenedor a ponto de fornecer sua senha ou token de acesso.

Com posse dessas credenciais, os atacantes publicaram versões contaminadas dos pacotes, que foram automaticamente distribuídas a milhares de projetos — sem que os desenvolvedores soubessem que estavam incorporando código nocivo.

Escopo e impacto global

Abaixo segue os pacotes comprometidos:
ansi-styles@6.2.2

debug@4.4.2 (parece ter sido retirado em 8 de setembro às 18h09 CEST)

chalk@5.6.1

supports-color@10.2.1

strip-ansi@7.1.1

ansi-regex@6.2.1

wrap-ansi@9.0.1

color-convert@3.1.1

color-name@2.0.1

is-arrayish@0.3.3

slice-ansi@7.1.1

color@5.0.1

color-string@2.1.1

simple-swizzle@0.2.3

supports-hyperlinks@4.1.1

has-ansi@6.0.1

chalk-template@1.1.1

backslash@0.2.1

Mais informações:
https://github.com/chalk/chalk/issues/656

https://github.com/debug-js/debug/issues/1005#issuecomment-3266885191

Projetos hospedados em plataformas como GitHub, Vercel, Netlify e Heroku também correm risco, especialmente se estiverem usando automações que instalam versões recentes dos pacotes afetados.

Diversas empresas já iniciaram auditorias emergenciais, e alguns grandes repositórios de código privado foram colocados temporariamente em modo de manutenção preventiva.

O que o código malicioso fazia?

Segundo análise de especialistas da comunidade infosec, o código injetado:

  • Verificava se o ambiente era um navegador com carteira de criptomoeda instalada;
  • Interceptava chamadas fetch e WebSocket relacionadas a APIs de transação;
  • Capturava valores de entrada como endereços de carteira, valores de envio e chaves públicas;
  • Encaminhava os dados para um servidor remoto controlado pelos invasores.

Esse tipo de ataque é especialmente perigoso por ser quase indetectável para usuários finais, e extremamente lucrativo para os criminosos, que podem redirecionar valores de transações em tempo real.

Como se proteger?

  • Evite instalar dependências automaticamente sem travar versões (package-lock.json, pnpm-lock.yaml);
  • Utilize ferramentas como npm audit, socket.dev ou Snyk para escanear dependências de forma recorrente;
  • Ative autenticação de dois fatores (2FA) em suas contas NPM, GitHub e outras plataformas de código;
  • Em projetos sensíveis, considere espelhar pacotes críticos em repositórios internos e revisá-los manualmente.

Um alerta para toda a comunidade

Esse incidente reacende a discussão sobre os riscos do modelo de código aberto com confiança implícita, onde qualquer atualização de pacote pode ser distribuída em escala global em questão de minutos.

A cadeia de suprimentos de software moderno, cada vez mais complexa e dependente de bibliotecas externas, exige medidas mais robustas de verificação, auditoria e resposta a incidentes.

Você confia nas dependências que instala? Como sua equipe lida com atualizações críticas no NPM? Compartilhe sua experiência com a comunidade e ajude a fortalecer as práticas de segurança.

Fontes:
BleepingComputer, The Register, GitHub Security Blog, Socket.dev, Snyk Security Advisories

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *


Rolar para cima