Ataque à cadeia no npm compromete @antv e expõe segredos
Uma campanha maliciosa no npm comprometeu pacotes da suíte @antv e passou a visar credenciais sensíveis de desenvolvedores, incluindo tokens do GitHub, chaves AWS e segredos de pipelines CI/CD.
Em primeiro lugar, os envios maliciosos começaram pouco antes das 2h UTC de 19 de maio. Assim, quando muitos desenvolvedores iniciavam o dia, o ataque já causava impacto relevante. A ofensiva explorou a cadeia de suprimentos do npm, um dos pilares do ecossistema JavaScript.
A equipe de Threat Research da Socket monitora o incidente em tempo real. Nesse sentido, o ataque afetou diversos pacotes da suíte AntV. A conta mantenedora comprometida, chamada atool, controla bibliotecas amplamente usadas em ferramentas voltadas ao blockchain. Entre elas estão antv/g2, antv/g6, antv/x6, antv/l7, antv/s2 e antv/f2, além de projetos fora do namespace, como timeago.js, size-sensor e canvas-nest.js.
Impacto rápido e disseminação em larga escala
No centro do incidente está o pacote echarts-for-react, que registra cerca de 1,1 milhão de downloads semanais. A versão 3.2.7 foi identificada como maliciosa. Segundo dados analisados, o artefato comprometido surgiu apenas 19 minutos antes da detecção. Portanto, o tempo de exposição inicial foi curto, mas suficiente para causar danos.
A janela de atividade foi breve, porém intensa. As publicações maliciosas começaram às 01:56 UTC e cessaram aproximadamente às 02:56 UTC. Ainda assim, sistemas da Socket detectaram a maioria dos envios entre 6 e 12 minutos após a publicação. O tempo médio de resposta ficou em 6,7 minutos, conforme detalhado pela Socket.
Ao todo, a campanha denominada Mini Shai-Hulud comprometeu 1.055 versões distribuídas em 502 pacotes diferentes. Além disso, o ecossistema npm concentrou 1.048 versões afetadas em 498 pacotes. Em contrapartida, plataformas como PyPI e Composer registraram apenas casos isolados.
Outros namespaces também sofreram impacto. Por exemplo, lint-md, openclaw-cn e starmind aparecem entre os atingidos. Da mesma forma, dezenas de pacotes populares receberam versões maliciosas dentro da mesma janela de uma hora.

Fonte: socket.dev.
Mecanismo do malware e roubo de credenciais
Técnicas de execução e ofuscação
O código malicioso não tenta esconder suas intenções. Em vez disso, ele modifica o arquivo package.json por meio de um hook de preinstall, garantindo execução automática durante a instalação. Assim, o ataque ocorre antes de qualquer validação manual.
Além disso, o malware utiliza técnicas avançadas de ofuscação. Entre elas estão tabelas de strings, decodificação dinâmica e um mecanismo próprio de descriptografia registrado no objeto global. Após a decodificação, pesquisadores identificaram um endpoint dedicado à exfiltração de dados.
Os dados coletados passam por múltiplas camadas de proteção. Primeiramente, são comprimidos com gzip. Em seguida, são criptografados com AES-256-GCM. Por fim, as chaves são protegidas com RSA-OAEP e SHA-256. Como resultado, ferramentas tradicionais de monitoramento enfrentam dificuldades para detectar o tráfego malicioso.
Alvos e ambientes comprometidos
O foco principal são segredos de ambientes de desenvolvimento. O malware busca tokens do GitHub e npm, credenciais AWS, configurações do Kubernetes, tokens Vault, chaves SSH, autenticações Docker e strings de conexão com bancos de dados.
Além disso, há suporte específico para 19 plataformas de CI/CD. Entre elas estão GitHub Actions, GitLab CI, Jenkins, Azure DevOps, CircleCI, Vercel e Netlify. Portanto, o ataque mira diretamente ambientes automatizados, essenciais para aplicações modernas.
Exfiltração via GitHub e comportamento de worm
Uso de repositórios para roubo de dados
Se o envio ao servidor principal falha, o malware ativa um método alternativo. Nesse caso, ele utiliza o GitHub para armazenar dados roubados. Ao obter um token válido, o código cria um repositório na conta da vítima e salva as informações em um diretório chamado results.
Pesquisas públicas já identificaram cerca de 1,8 mil repositórios associados à campanha. Curiosamente, muitos usam nomes inspirados na obra Duna. Em alguns casos, os dados exfiltrados permanecem acessíveis, o que reforça a eficácia do método.
Capacidade de propagação automática
O ataque também apresenta comportamento de worm, ou seja, se propaga automaticamente. O código valida tokens npm, identifica pacotes modificáveis, injeta o malware, incrementa versões e republica os pacotes comprometidos.
Como consequência, a disseminação ocorre de forma rápida e escalável. Versões anteriores da campanha já haviam atingido bibliotecas como TanStack e ferramentas ligadas ao Intercom. Embora existam variações, o padrão geral permanece consistente.
Por fim, o impacto potencial é significativo para o setor de blockchain. Desenvolvedores que utilizam bibliotecas AntV em dashboards Web3 ou ferramentas DeFi podem ter pipelines comprometidos, expondo credenciais críticas e acessos administrativos.
Em suma, o ataque ao npm reforça os riscos crescentes na cadeia de suprimentos de software. Sobretudo, projetos ligados ao mercado de criptomoedas enfrentam ameaças cada vez mais sofisticadas. Dessa forma, especialistas recomendam auditorias contínuas, monitoramento ativo e revisão rigorosa de dependências.