- A campanha Mini Shai-Hulud atingiu mais de trezentos pacotes NPM, com 639 versões maliciosas publicadas entre 01h56 e 02h56 UTC pela conta comprometida “atool”.
- A conta comprometida tinha acesso a mais de quinhentos pacotes, incluindo timeago.js e echarts-for-react, cada um com milhões de downloads semanais.
- O malware rouba credenciais de ambientes de CI/CD, lê memória de processsos do GitHub Actions e coleta segredos de mais de cento e trinta caminhos de arquivos, com dados criptografados.
- Os atacantes criaram cerca de dois mil a três mil repositórios falsos no GitHub das vítimas para exfiltrar dados, usando rede P2P Session para tráfego criptografado.
- A ação também envolve backdoors persistentes em VS Code e Claude Code, além de comprometer componentes como PyPI e GitHub Actions, exigindo rotação imediata de credenciais.
O ataque da campanha Mini Shai-Hulud atingiu mais de 320 pacotes NPM na madrugada de 19 de maio, com a conta comprometida sob o usuário ‘atool’. Pessoas por trás da ação publicaram 639 versões maliciosas entre 01h56 e 02h56 UTC, buscando roubar credenciais de desenvolvedores e de ambientes de CI/CD.
A conta invadida tinha acesso a mais de 500 pacotes. Entre os afetados estão o timeago.js, com 1,5 milhão de downloads semanais, e o echarts-for-react, com 1,1 milhão. A brecha expõe um ecossistema de visualização de dados amplamente utilizado.
O ataque começou às 01h56 UTC e terminou às 02h56 UTC, atingindo pacotes do namespace @antv, que são usados para gráficos, visualizações e mapas. Também houve comprometimento de pacotes fora desse namespace, ampliando o alcance.
A Microsoft alertou que a disseminação alcançou aplicações e ambientes de CI/CD além dos pacotes inicialmente infectados. A Socket registra 1.055 versões comprometidas em 502 pacotes únicos, durante toda a campanha, segundo especialistas.
Pesquisadores da Endor Labs destacam que alguns pacotes afetados estavam sem atualizações legítimas há anos, como o jest-canvas-mock, ainda com 10 milhões de downloads mensais, porém inativo há três anos. A falta de recursos de segurança atualizados é evidência central.
Cada pacote comprometido carrega um payload ofuscado que executa na instalação. O código lê memória de processos do GitHub Actions para extrair segredos de CI/CD em texto simples e coleta credenciais de mais de 130 caminhos de arquivos.
Os alvos incluem contas de serviços em nuvem (AWS, GCP, Azure), Kubernetes, HashiCorp Vault, carteiras de criptomoedas e ferramentas de desenvolvimento. A operação busca tokens SSH, chaves Docker e credenciais de bancos de dados, com foco em estações de trabalho e ambientes de CI/CD.
Os dados roubados chegam serializados, comprimidos com Gzip e criptografados com AES-256-GCM, recebendo ainda uma camada RSA-OAEP para dificultar inspeção de rede. A exfiltração utiliza a rede P2P Session com tráfego criptografado na porta 443.
Ao encontrar credenciais do GitHub, o malware cria automaticamente novos repositórios na conta da vítima e envia os dados para esses alvos. A Aikido reporta mais de 2.700 repositórios fraudulentos identificados, com Readmes contendo a frase invertida niaga og ew ereh :duluh-iahs, referência ao nome da campanha.
O malware tem capacidade de autopropagação: valida tokens NPM roubados, lista pacotes da vítima, baixa tarballs e injeta código malicioso, insertando hooks de pré-instalação e republicando versões com números incrementados.
Especialistas apontam que o ataque também facilitou a criação de backdoors em VS Code e Claude Code, garantindo persistência. A Socket observa ainda downloads de código Python da infraestrutura dos operadores, para manter controle remoto.
Três versões maliciosas do Python SDK Durabletask da Microsoft foram enviadas ao PyPI em 35 minutos, e o GitHub Action actions-cool/issues-helper aparece também associada à campanha, conforme a Wiz. A recomendação oficial é a rotação imediata de credenciais expostas em ambientes de build afetados.
Entre na conversa da comunidade