Blog
A Microsoft está investigando um novo ataque
A Microsoft está investigando um novo ataque emergente de cadeia de suprimentos npm envolvendo um Mini Shai-Hulud, direcionado a pacotes antv.
A Microsoft está investigando um novo ataque emergente de cadeia de suprimentos npm envolvendo um Mini Shai-Hulud, direcionado a pacotes antv.
Os atacantes comprometeram uma conta de mantenedor do antv e publicaram versões maliciosas de vários pacotes amplamente utilizados (por exemplo, antv/g2). Como esses pacotes são amplamente usados como dependências, o comprometimento se propagou para bibliotecas downstream, como echarts-for-react, impactando um conjunto muito mais amplo de aplicativos e ambientes de integração contínua (CI).
Todos os pacotes comprometidos contêm um payload ofuscado idêntico em bytes para roubo de credenciais, entregue por meio de um hook de pré-instalação (Bun). O malware visa segredos de alto valor, incluindo:
- Tokens de acesso pessoal do GitHub (PATs) e tokens OpenID Connect (OIDC)
- Credenciais npm / Amazon Web Service (AWS) e sessões do Security Token Service (STS)
- Chaves Secure Shell (SSH), kubeconfigs e arquivos .env / .npmrc
- Tokens de software-as-a-service (SaaS) (Slack, Stripe, Vault)
A exfiltração ocorre via HTTPS com validação de Transport Layer Security (TLS) desativada. O payload também abusa de tokens OIDC roubados para forjar proveniência Supply-chain Levels for Software Artifacts (SLSA) e propagar lançamentos maliciosos, exibindo comportamento semelhante a um worm em repositórios.
Arquivos maliciosos distribuídos por meio de pacotes npm são detectados pelo Microsoft Defender como Trojan:AIGen/NPMStealer, "Comportamento suspeito de processo Node.js" ou “Tentativa de acesso a credenciais”, impedindo o roubo de credenciais e a execução maliciosa pós-instalação.
Mitigação:
- Audite dependências para pacotes antv afetados e relacionados; fixe ou faça downgrade para versões conhecidamente boas (pré-2025-05-18).
- Revogue e rotacione credenciais expostas (GitHub, npm, tokens de nuvem, chaves SSH).
- Valide a integridade de pipelines de CI e artefatos de build recentes.
- IOC de rede: Credenciais roubadas são exfiltradas via HTTPS para t.m-kosche[.]com:443. Bloqueie na saída e revise logs de rede para conexões de saída.
O ataque se aproveita do recurso de instalação automática de servidores MCP (Model Context Protocol) no editor de código Cursor para executar código malicioso oculto em um pacote npm (mcp-mermaid).
Aqui está o passo a passo de como a exploração acontece:
O Gatilho (Auto-Instalação)
launchd ➔ Cursor ➔ Cursor Helper (Plugin)
O editor Cursor (ou uma extensão dele) tenta usar ou inicializar uma funcionalidade que requer a ferramenta mcp-mermaid.
node (npx -y mcp-mermaid)
O Cursor executa silenciosamente o comando npx -y mcp-mermaid. O parâmetro -y diz ao Node/npm para aceitar e instalar automaticamente o pacote sem pedir confirmação ao usuário.
A Injeção de Código (O Cavalo de Tróia)
node (npm install --force)
Durante o processo de instalação, o pacote malicioso aciona um script de pós-instalação (postinstall hook). Isso é um recurso legítimo do npm usado para configurar pacotes, mas que frequentemente é abusado por invasores.
sh -c "bun run .js && exit 1"
O script de pós-instalação executa um arquivo JavaScript oculto (.js) usando o runtime Bun (bun.exe). O && exit 1 força o comando a falhar no final para tentar esconder o rastro ou interromper a execução normal para que o usuário não suspeite.
A Execução do Malicious Payload
bun.exe (child worker)
O script malicioso roda em segundo plano e gera processos filhos para realizar a atividade maliciosa de fato.
4. O Roubo de Credenciais (Exfiltração)
Aqui o ataque foca especificamente no ambiente macOS do desenvolvedor:
bash ➔ "gh auth token" (CREDENTIAL THEFT)
O script tenta obter o token de autenticação do GitHub utilizando a ferramenta de linha de comando oficial do GitHub (gh).
security find-generic-password -s gh:github.com ... (KEYCHAIN ACCESS)
Como o CLI do GitHub armazena as credenciais de forma segura no Keychain (Chaveiro) do macOS, o processo malicioso executa o comando nativo security do Mac para extrair a senha/token do GitHub diretamente do sistema.
[network connections]
Uma vez que o token do GitHub é roubado, o malware abre conexões de rede para enviar essa credencial secreta para um servidor controlado pelo atacante (C2 - Comando e Controle).
Resumo do Impacto
O ataque é extremamente perigoso porque acontece de forma totalmente silenciosa em segundo plano enquanto o desenvolvedor simplesmente usa seu editor de código. Se bem-sucedido, o atacante ganha acesso total à conta do GitHub da vítima, permitindo roubar código proprietário ou injetar malware nos repositórios da empresa onde a vítima trabalha.