Pesquisadores de segurança cibernética da Socket revelaram uma campanha ativa de worms na cadeia de suprimentos, semelhante ao “Shai-Hulud”, que utilizou um conjunto de pelo menos 19 pacotes npm maliciosos para coletar credenciais e roubar chaves de criptomoedas.
A campanha recebeu o codinome SANDWORM_MODE pela empresa de segurança da cadeia de suprimentos Socket. Assim como em ondas de ataque anteriores do Shai-Hulud, o código malicioso incorporado nos pacotes possui a capacidade de extrair informações do sistema, tokens de acesso, segredos de ambiente e chaves de API de ambientes de desenvolvimento, propagando-se automaticamente por meio do abuso de identidades roubadas do npm e do GitHub para ampliar seu alcance.
Segundo a Socket, a amostra mantém as características do Shai-Hulud e adiciona exfiltração da API do GitHub com fallback de DNS, persistência baseada em hooks, fallback de propagação SSH, injeção no servidor MCP com injeção de prompts incorporados direcionada a assistentes de codificação de IA e coleta de chaves de API LLM.
Os pacotes, publicados no npm por dois aliases de publicação do npm, official334 e javaorg, estão listados e também foram identificados quatro pacotes ocultos que não incorporam quaisquer características maliciosas.
- ethres
- iru-caches
- iruchache
- uudi
Os pacotes vão além da propagação baseada em npm, incluindo uma ação do GitHub modificada que coleta segredos de CI/CD e os exfiltra via HTTPS com fallback para DNS. Eles também apresentam uma rotina destrutiva que funciona como um mecanismo de segurança, acionando a limpeza do diretório home caso o acesso ao GitHub e ao npm seja perdido. A funcionalidade de limpeza está desativada por padrão.
Outro componente significativo do malware é um módulo “McpInject” que visa especificamente assistentes de codificação de IA implantando um servidor malicioso do protocolo de contexto de modelo (MCP) e injetando-o nas configurações de suas ferramentas. O servidor MCP se disfarça de um provedor de ferramentas legítimo e registra três ferramentas aparentemente inofensivas, cada uma das quais incorpora uma injeção de prompt para ler o conteúdo dos arquivos.
Toda a cadeia de ataque se desenrola em duas etapas: uma primeira etapa que captura credenciais e chaves de criptomoedas e, em seguida, carrega uma segunda etapa que realiza uma coleta mais profunda de credenciais de gerenciadores de senhas, propagação semelhante a um worm, injeção de MCP e exfiltração completa. A segunda etapa só é ativada após 48 horas (com uma variação de até 48 horas adicionais por máquina).
Usuários que instalaram algum dos pacotes mencionados são aconselhados a removê-los imediatamente, rotacionar os tokens do npm/GitHub e os segredos de CI, e revisar os arquivos package.json, lockfiles e a pasta github/workflows/ para verificar se houve alguma alteração inesperada.
O mesmo código de worm aparecendo em vários pacotes de typosquatting e aliases de publicação indica distribuição intencional em vez de um lançamento acidental. Os comportamentos destrutivos e de propagação continuam sendo reais e de alto risco, e os responsáveis pela segurança devem tratar esses pacotes como riscos ativos de comprometimento, em vez de artefatos de teste benignos.
A divulgação ocorre no momento em que a Veracode e a JFrog detalharam outros dois pacotes npm maliciosos, chamados “buildrunner-dev” e “eslint-verify-plugin”, respectivamente, projetados para distribuir um trojan de acesso remoto (RAT) direcionado a sistemas Windows, macOS e Linux. O malware .NET implantado pelo buildrunner-dev é o Pulsar RAT,
As descobertas também seguem um relatório da Checkmarx, que identificou uma extensão maliciosa do VS Code conhecida como “solid281”, que se faz passar pela extensão oficial do Solidity, mas contém recursos ocultos para executar um carregador altamente ofuscado automaticamente na inicialização do aplicativo e instalar o ScreenConnect no Windows e um shell reverso em Python em máquinas macOS e Linux.
Isso reflete padrões mais amplos relatados por outras equipes: os desenvolvedores Solidity parecem ser alvos específicos, incluindo campanhas que usaram extensões Solidity falsas para instalar o ScreenConnect e, em seguida, implantar payloads subsequentes.

