O pacote jscrambler no npm foi comprometido em 11 de julho de 2026 e a versao 8.14.0 chegou ao registro publico executando um infostealer em Rust durante o processo de instalacao. A carga maliciosa roda em Windows, macOS e Linux, varrendo maquinas de desenvolvedores atras de credenciais AWS, Azure e Google Cloud, wallets de criptomoedas, cofres do Bitwarden e — de forma inedita — arquivos de configuracao de ferramentas de programacao com IA como Claude Desktop, Cursor, Windsurf, VS Code e Zed, onde ficam chaves de API e credenciais de servidores MCP (Model Context Protocol).
A Socket, empresa de seguranca especializada em ecossistemas de codigo aberto, identificou a versao 8.14.0 do pacote npm jscrambler como maliciosa apenas seis minutos apos sua publicacao. O intervalo pode parecer suficiente para conter o estrago, mas para pipelines de CI/CD configurados para puxar atualizacoes automaticamente, seis minutos ja sao suficientes para executar o payload em dezenas de builds.
O pacote legitimo, mantido pela empresa portuguesa jscrambler, e uma ferramenta de ofuscacao de JavaScript amplamente adotada por equipes que precisam proteger codigo enviado ao cliente. Segundo dados do proprio npm, jscrambler recebe cerca de 15.800 downloads semanais — volume modesto quando comparado a bibliotecas como axios ou chalk, mas devastador quando se considera o perfil dos usuarios: desenvolvedores com acesso a codigo-fonte proprietario, chaves de deploy e ambientes de build corporativos.
A versao anterior, 8.13.0, esta limpa. A diferenca aparece em dois arquivos novos dentro de dist/: setup.js, que atua como carregador, e intro.js, um arquivo de aproximadamente 7,8 MB que — apesar do nome — nao contem JavaScript, e sim tres binarios nativos comprimidos em gzip, um para cada sistema operacional. O script setup.js e executado atraves do hook preinstall do npm, garantindo que a infeccao ocorra antes mesmo do desenvolvedor rodar qualquer codigo.
Durante a instalacao, setup.js detecta o sistema operacional do host, extrai o binario correspondente, grava-o com nome aleatorio em um diretorio temporario, define permissao de execucao e o dispara de forma destacada (detached), com stdout e stderr redirecionados para dispositivo nulo. O processo pai encerra normalmente, dando ao usuario a impressao de que a instalacao ocorreu sem sobressaltos.
O binario escrito em Rust nao e um infostealer generico. Ele foi construido especificamente para atacar maquinas de desenvolvedores. A lista de alvos, mapeada pela Socket, inclui credenciais das principais nuvens (AWS, Azure, GCP), com atencao especial aos endpoints de metadata que runners de CI consultam para obter tokens temporarios de curta duracao. Wallets como MetaMask, Phantom e Exodus tem suas seed phrases exfiltradas, assim como o cofre criptografado do Bitwarden. Cookies e senhas armazenados em navegadores, sessoes de Discord, Slack, Telegram e Steam completam o pacote.
O que diferencia esta campanha das anteriores e a inclusao de arquivos de configuracao de assistentes de codigo com IA. Claude Desktop, Cursor, Windsurf, VS Code e Zed sao explicitamente varridos em busca de chaves de API — que geralmente concedem acesso a modelos pagos com creditos vinculados ao cartao — e, mais grave, credenciais de servidores MCP (Model Context Protocol) que expõem repositorios GitHub privados, buckets S3, bancos de dados e ferramentas internas.
“O binario Linux vai alem do modelo tradicional de stealer: ele carrega a biblioteca BPF do kernel e injeta um programa eBPF direto na memoria kernel. Isso e uma cabeca de ponte no kernel, nao apenas no espaco de usuario — o processo original nem precisa continuar rodando”, registrou a Socket em analise atualizada.
O perfil de vitimas potenciais e bastante especifico. Como jscrambler e tipicamente instalado como dependencia de desenvolvimento (devDependency) ou executado em pipelines de CI, os ambientes atingidos costumam concentrar exatamente o que o stealer procura:
.env;Ainda nao ha estimativa publica de quantas instalacoes ocorreram dentro da janela de seis minutos entre publicacao e retirada. O impacto real depende de quantas maquinas de CI foram configuradas para atualizar semver ranges automaticamente — pratica comum em equipes que confiam demais em caret (^) para versoes minor.
O ataque a jscrambler chega em um momento de aceleracao clara nos ataques de supply chain via npm. Em setembro de 2025, o worm Shai-Hulud usou hooks de install para roubar tokens e se propagar por centenas de pacotes. Em marco de 2026, uma conta comprometida injetou um trojan cross-platform no axios — biblioteca com mais de 83 milhoes de downloads semanais. E ha poucas semanas, os pacotes chalk e debug foram sequestrados via phishing do mantenedor para redirecionar pagamentos crypto.
O que muda com jscrambler nao e a tecnica — hooks de preinstall maliciosos existem ha uma decada. O que muda e o alvo. Este e o primeiro grande ataque de supply chain publicamente documentado que trata as configuracoes de assistentes de IA como ativo de coleta prioritario. A justificativa e obvia: um desenvolvedor moderno guarda no seu Claude Desktop ou Cursor credenciais MCP que abrem portas para GitHub, GitLab, bases de dados de producao, servidores Kubernetes e ferramentas de observabilidade. Uma unica chave MCP pode valer mais que dez chaves AWS antigas — e ninguem rotaciona esse tipo de credencial ainda porque nao existem convencoes maduras para isso.
O uso de eBPF no payload Linux tambem merece atencao. Estamos vendo malwares de supply chain adotando tecnicas que ate 2024 eram territorio de APTs — carregar programas no kernel a partir de memoria, sem tocar disco, apenas para garantir persistencia mesmo apos o npm remover o pacote. E um sinal de que a barreira de sofisticacao caiu: qualquer grupo com capacidade de comprometer uma conta de mantenedor npm ja tem acesso a codigo Rust maduro capaz de fazer o que Turla ou APT29 faziam ha poucos anos.
npm ls jscrambler em todos os projetos e faca pin da versao para 8.13.0 (ou ~8.13.0) ate que a jscrambler publique uma versao limpa auditada.npm install apos 11 de julho de 2026 com jscrambler na arvore de dependencias, considere tudo comprometido — chaves de nuvem, tokens de repositorio, cookies de navegador logado, seed phrases de wallets, chaves de API de servicos SaaS.npm install --ignore-scripts em pipelines de CI sempre que possivel. Para desenvolvedores, configure ignore-scripts=true em .npmrc e libere manualmente apenas para pacotes confiaveis.~/.config/ e roterorote todos os tokens de servidores MCP se houver duvida sobre exposicao.bpftool prog show e tracee ajudam a detectar programas eBPF carregados fora do inventario esperado.Fonte: The Hacker News
Angelo Martino, 41 anos, ex-negociador da Sygnia e da DigitalMint, foi sentenciado a quase seis…
Decisao no caso Chatrie v. United States pode reverberar sobre a Flock Safety, que mantem…
Time do Prof. Han Zhang (Shenzhen U) mostra plataforma fotônica de fibra ótica com fósforo…
OpenAI diz que GPT-5.6 Sol Ultra provou o Cycle Double Cover Conjecture, aberto há 50…
Boston Dynamics integra Gemini Robotics-ER 1.6 no Spot via Orbit AIVI: robôs agora leem manômetros…
OpenAI e Broadcom lançam o Jalapeño: primeiro chip próprio da OpenAI, projetado em 9 meses,…