O que aconteceu
Em 8 de outubro de 2026, às 01:12 UTC (10:12 no Japão), a versão 0.5.144 do pacote npm tensorlake, o SDK de uma plataforma de sandboxes serverless para agentes de IA, foi publicada com um worm da família Shai-Hulud que rouba credenciais. O pacote tem cerca de 12 a 18 mil downloads semanais. A versão ficou no ar por cerca de 1h40, segundo o aviso dos mantenedores, que dizem que a telemetria não mostrou uso dela. A Socket detectou a versão maliciosa 11 minutos após a publicação.
Os pacotes do Tensorlake no PyPI e no Cargo não foram afetados, segundo as análises publicadas.
Como entraram
O ataque não começou no npm, e sim no GitHub:
- Em 7 de outubro, o invasor fez commits direto na branch main do repositório tensorlakeai/tensorlake pela interface web, usando a conta de administrador de um mantenedor, sem pull request.
- Oito commits ajustaram o payload e adicionaram um gancho preinstall no package.json.
- Cerca de 20 horas depois, a mesma conta disparou manualmente o workflow oficial de publicação.
Resultado: o pacote saiu com atestado de procedência (provenance) válido. Como lembra a StepSecurity, o atestado diz onde o pacote foi construído, não que o código é seguro.
O que o malware faz
- O gancho preinstall roda um carregador ofuscado que baixa o runtime Bun e executa um payload de 856 KB.
- Rouba tokens do npm e do GitHub, credenciais de nuvem, Kubernetes e Vault e arquivos de configuração de ferramentas de IA para código.
- Tenta se espalhar: republica outros pacotes do usuário e faz commits de arquivos .claude e .vscode em seus repositórios, com o autor falso "claude@users.noreply.github.com" e a mensagem "chore: update dependencies".
- Token refém: instala um monitor que verifica o token do GitHub roubado a cada 60 segundos por até 24 horas. Se o token for revogado, apaga o diretório home da máquina (rm -rf ~/ no Linux e macOS). Há divergência entre pesquisadores sobre quando a armadilha é ativada.
O padrão de dois arquivos (setup.mjs e Math_Symbol.js) é o mesmo dos ataques de agosto aos pacotes keyv e cacheable, baseados no código "mini Shai-Hulud" que o grupo TeamPCP liberou. Não há prova de que seja o mesmo grupo.
O que fazer se você instalou
- Antes de revogar tokens, isole a máquina e mate o processo de monitoramento, para não perder o home.
- Trate como comprometidas todas as credenciais da máquina: npm, GitHub, nuvem e configurações de agentes de IA. Depois, rotacione tudo.
- Procure commits "chore: update dependencies" de autores estranhos e workflows novos nos seus repositórios.
- Verifique versões publicadas recentemente dos seus próprios pacotes.
Lições
- Exija revisão em todo push para main, inclusive de administradores.
- Use chaves de hardware (FIDO2) nas contas de mantenedores.
- Adote período de espera (cooldown) antes de instalar versões recém-publicadas e desative scripts de instalação quando possível.
- Ferramentas de IA para código viraram alvo: suas configurações guardam chaves valiosas.
Fontes
- Aviso de segurança do Tensorlake (GHSA-8g63-53c9-65j2): https://github.com/tensorlakeai/tensorlake/security/advisories/GHSA-8g63-53c9-65j2
- Socket: https://www.socket.dev/blog/tensorlake-compromise
- StepSecurity: https://www.stepsecurity.io/blog/tensorlake-npm-compromised-hostage-token-worm
- Aikido: https://www.aikido.dev/blog/tensorlake-npm-package-compromised
Quer proteger sua cadeia de suprimentos de software e seus pipelines? A KGA IT oferece uma consulta gratuita: kga-it.com.