Cinco versões do npm do jscrambler comprometidas com infostealer em Rust que contorna --ignore-scripts

Atacante comprometeu a conta npm do jscrambler em 11 de julho e publicou cinco versões maliciosas da ferramenta usada por 43 mil empresas incluindo Fortune 500, com infostealer em Rust que captura credenciais de navegadores e cofres Bitwarden.
Cinco versões do pacote npm oficial do jscrambler, ferramenta de ofuscação de JavaScript usada por mais de 43.000 empresas incluindo clientes Fortune 500, foram comprometidas em 11 de julho com um infostealer compilado em Rust que captura credenciais salvas em navegadores e cofres do gerenciador de senhas Bitwarden. O ataque manteve versões maliciosas disponíveis no npm por aproximadamente três horas. A plataforma de segurança Socket detectou a primeira versão comprometida seis minutos após sua publicação.
Cinco versões, duas táticas, um mesmo payload
As versões 8.14.0, 8.16.0, 8.17.0, 8.18.0 e 8.20.0 foram publicadas pelo atacante intercaladas com versões limpas que os mantenedores da jscrambler empurraram em tentativa de remediação, indicando que o controle da conta ou do pipeline de CI/CD foi mantido durante toda a janela do incidente.
As versões 8.14.0 a 8.17.0 operavam via preinstall hook: ao rodar npm install, o script dist/setup.js extraía um binário nativo por sistema operacional (Linux, Windows e macOS) e o executava em modo silencioso. A partir da versão 8.18.0, o atacante alterou a abordagem. O payload passou a ser carregado pelo próprio módulo principal ao ser importado, via dist/index.js e dist/bin/jscrambler.js. Essa mudança contorna o flag --ignore-scripts do npm, parâmetro adotado por equipes de segurança corporativa como barreira contra scripts de instalação não confiáveis.
O que o infostealer capturava
O binário Rust, idêntico nas cinco versões comprometidas, varre a máquina do desenvolvedor em busca de perfis de navegadores Chromium (Chrome, Brave, Edge), dados do cofre local da extensão Bitwarden e sessões ativas do Steam. As informações coletadas são transmitidas a um servidor de coleta via TLS. No Windows, o malware instalava persistência via Agendador de Tarefas; no macOS, via LaunchAgents. Máquinas Linux recebiam apenas a exfiltração imediata, sem mecanismo de persistência.
Segundo análise da Socket, o acesso ilegítimo à conta npm ou ao pipeline de CI/CD do jscrambler permitiu publicar versões assinadas sob a identidade legítima do pacote, tornando a detecção por inspeção de metadados ineficaz.
Por que o vetor afeta diretamente ambientes de produção financeira
O jscrambler é adotado por empresas para ofuscação de JavaScript em produção e para conformidade com o PCI DSS v4, o padrão de segurança da indústria de cartões de pagamento que exige proteção de scripts em páginas de checkout. Com 60.000 downloads mensais no npm, o pacote circula rotineiramente em pipelines de integração contínua de varejistas, bancos e processadores de pagamento nos Estados Unidos e no Reino Unido, dois dos mercados onde o PCI DSS v4 tornou-se obrigatório em 2025.
O comprometimento de uma ferramenta de proteção de código usada por empresas do setor financeiro representa um vetor de segundo nível: o atacante não invadiu o cliente final, mas a ferramenta que o cliente usa para proteger seus próprios clientes. Esse padrão foi documentado em SolarWinds (2020), quando o software de monitoramento de rede tornou-se canal de acesso a agências governamentais americanas, e em 3CX (2023), quando um software de comunicação corporativa foi trojanizado para distribuir malware a empresas em mais de 60 países.
O que se sabe sobre a extensão do dano
A Socket não divulgou quantas organizações instalaram as versões comprometidas antes da remoção. A jscrambler não havia emitido comunicado público com número de máquinas afetadas até o fechamento desta matéria. As cinco versões foram removidas do npm dentro das três horas do incidente, mas qualquer ambiente que executou npm install contra uma das versões comprometidas durante esse período deve ser tratado como comprometido até prova em contrário.
Desenvolvedores que instalaram as versões 8.14.0, 8.16.0, 8.17.0, 8.18.0 ou 8.20.0 devem rotacionar imediatamente senhas salvas em Chrome, Brave e Edge, revogar tokens do Bitwarden e auditar processos agendados no Windows e LaunchAgents no macOS. A ausência de mecanismo de persistência em Linux não equivale a ausência de dano: a exfiltração ocorre no momento da instalação, antes de qualquer persistência ser necessária.