Campanha npm testmetest armou 42 repositórios GitHub reais, diz JFrog
A JFrog Security Research relatou em 26 de outubro de 2026 que a campanha de pacotes npm testmetest armou 42 repositórios GitHub de 11 donos legítimos, incluindo uma organização. Hooks ocultos para Claude, Gemini, Cursor e VS Code executam o payload .github/init.js quando o desenvolvedor abre o projeto, e o payload decodificado publica novos pacotes npm maliciosos usando tokens npm roubados ou publicação confiável OIDC do GitHub. Troque credenciais de GitHub e npm e audite repositórios por enumeração da árvore Git, já que wrappers de 12,9 a 13,7 MB escapavam da busca de código do GitHub.
O que aconteceu
A JFrog Security Research relatou, em 26 de outubro de 2026, que a campanha de pacotes npm testmetest armou 42 repositórios GitHub de 11 donos legítimos, de estudantes a uma organização. O malware é executado quando um desenvolvedor abre o projeto em Claude Code, Gemini CLI, Cursor ou VS Code. O payload publica novos pacotes npm maliciosos com tokens npm roubados ou publicação confiável OIDC do GitHub.
Por que importa
Repositórios legítimos viraram vetor de ataque contra desenvolvedores que confiam no código. O payload se replica publicando novos pacotes maliciosos, o que amplia o comprometimento da cadeia de suprimentos de software e pode contaminar builds e clientes. Os arquivos maliciosos, de 12,9 a 13,7 MB, escapavam da busca de código do GitHub, então a detecção por busca normal falha.
O que fazer
Trocar imediatamente credenciais e tokens de GitHub e npm, revogar publicação confiável OIDC não usada e auditar repositórios por enumeração da árvore Git, não por busca de código. Revisar permissões de contas com acesso a pacotes npm publicados.
Para o time técnico
- Afetados
- npm / GitHub Pacotes npm da campanha testmetest; 42 repositórios GitHub de 11 donos legítimos, incluindo uma organização · 42 repositórios GitHub de 11 donos legítimos, incluindo desenvolvedores estabelecidos e uma organização; pacotes npm da campanha testmetest.
- Exploração
- Exploração confirmada em análise da JFrog Security Research, de 26 de outubro de 2026. A contagem de 42 repositórios vem da análise da própria JFrog. Pesquisa da SafeDep, de 22 de outubro de 2026, cobriu o worm npm, sem o total de repositórios. A JFrog liga as mesmas contas sequestradas à varredura do CVE-2026-41940 do cPanel, sem comprometimento downstream confirmado do cPanel.
- Correção
- Sem correção publicada. Mitigação citada pela JFrog: trocar credenciais de GitHub e npm e auditar repositórios por enumeração da árvore Git.
- Vetor
- Hooks ocultos para Claude Code, Gemini CLI, Cursor e VS Code executam o payload .github/init.js quando o desenvolvedor abre o projeto. Wrappers polimórficos de 12,9 a 13,7 MB escapavam da busca de código e da API de contents do GitHub. Pacotes mais novos escondem o payload em addon nativo (.napi_cache, XOR 0x96) que se recusa a rodar em CI, contêineres ou debuggers.
- Mais detalhes
- O payload decodificado é um publicador que usa tokens npm roubados ou publicação confiável OIDC do GitHub para publicar novas versões npm maliciosas. A JFrog não atribui a campanha aos operadores originais do Miasma.
Indicadores (IoCs)
- .github/init.js
- pacotes npm da campanha testmetest
Linha do tempo
JFrog detalha que os 42 repositórios foram armados para executar o malware quando um desenvolvedor abre o projeto em Claude Code, Gemini CLI, Cursor ou VS Code; o payload de cerca de 13 MB era grande demais para a busca de código do GitHub indexar.
Pesquisa da JFrog mostra que a campanha atingiu 42 repositórios reais com hooks ocultos para ferramentas de IA.
Fontes 2 fontes
- @DailyDarkWeb @DailyDarkWeb
- @IntCyberDigest @IntCyberDigest


