Uma nova variante de worm de cadeia de suprimentos, batizada de SANDWORMMODE, está ativamente comprometendo o ecossistema npm (Node Package Manager). Pesquisadores identificaram pelo menos 19 pacotes maliciosos que, além de roubar segredos de desenvolvedores e pipelines de CI/CD, são projetados para se propagar automaticamente entre repositórios e fluxos de trabalho.
Mecanismo de infecção e propagação
O campanha utiliza pacotes npm com typosquatting (imitações de nomes populares) e uma GitHub Action envenenada para infectar tanto máquinas de desenvolvimento quanto pipelines de integração contínua. Os pacotes maliciosos mantêm sua funcionalidade aparente, mas executam secretamente um payload JavaScript em múltiplos estágios assim que importados via npm install.
O worm opera em dois estágios principais de coleta de dados. O Estágio 1 realiza uma colheita rápida de segredos, varrendo arquivos .npmrc, variáveis de ambiente, arquivos de configuração e carteiras de criptomoedas, exfiltrando os dados para um endpoint de Cloudflare Worker. O Estágio 2 realiza uma busca mais profunda, vasculhando gerenciadores de senhas, bancos de dados SQLite locais e arquivos de carteira.
Propagação autônoma e persistência
Utilizando as credenciais npm e GitHub roubadas, o worm se espalha de forma autônoma. Ele modifica repositórios acessíveis via API do GitHub, injetando uma dependência "carrier" oculta em arquivos package.json e lockfiles, e adiciona workflows maliciosos. Se o acesso à API falhar, o malware recorre a um método de fallback SSH, abusando do agente SSH da vítima para clonar e modificar repositórios.
Para garantir persistência, o SANDWORMMODE instala hooks git para que novos repositórios herdem a infecção. A campanha também inclui uma GitHub Action weaponizada chamada ci-quality/code-quality-check, que se passa por uma ferramenta de verificação de código mas, na realidade, rouba segredos de CI e continua o processo de propagação.
Alvo expandido: ferramentas de IA
Uma evolução notável nesta variante é o direcionamento a ferramentas de codificação assistida por IA, como Claude Code, Cursor e extensões do VS Code. O worm instala um servidor MCP (Model Context Protocol) malicioso nas configurações dessas ferramentas e utiliza instruções ocultas de injeção de prompt (prompt injection) para enganar os assistentes de IA, fazendo com que leiam e enviem chaves SSH, credenciais de cloud e tokens para o servidor do atacante.
Risco e mitigação
O Socket Threat Research Team, responsável pela descoberta, alerta que a campanha representa um risco sério para ambientes de desenvolvimento e CI. As recomendações imediatas incluem: remover os pacotes maliciosos identificados, rotacionar todas as credenciais e segredos que possam ter sido expostos, auditar minuciosamente os workflows do GitHub e monitorar atividades suspeitas em repositórios e contas. A ameaça sublinha a importância crítica de ferramentas de análise de dependências e de práticas rigorosas de segurança na cadeia de suprimentos de software.