HeadlinesBriefing favicon HeadlinesBriefing.com

Carregador criptografado na biblioteca NPM

Hacker News •
×

Encontramos um implante de acesso remoto escondido dentro do mathmain, um pacote npm que copia a popular biblioteca mathjs. O código malicioso é enviado criptografado. Ele permanece inativo até que um programa resolva uma equação específica com a biblioteca. Essa equação é a chave. Quando a chave corresponde, o pacote descriptografa um payload e o executa. O payload recebe comandos do atacante e os executa no host. Ele usa um serviço de chat público e uma rede blockchain para seu canal de comando.

Começamos com uma análise do Safe Dep do mathmain em 17 de setembro de 2026. O pacote parecia uma cópia do mathjs com um nome diferente e código ofuscado. Uma chamada adicionada no solucionador nos levou ao carregador. Perto do final de lusolve(), encontramos uma chamada extra na compilação Common JS. O solucionador já havia calculado seu resultado. Em seguida, passou dados da matriz triangular inferior para chamar remove Solve Validation().

Seguimos remove Solve Validation() até is Graph(x) em lib/cjs/utils/is.js. A função adicionada is Graph() descriptografa e carrega código. Ela converte sua entrada em uma string JSON e usa essa string como senha. Primeiro descriptografa um nome de arquivo. Em seguida, passa o caminho do arquivo e a senha para event(), e carrega o caminho retornado com require().

Os dados da matriz se tornam uma senha. Em lib/cjs/utils/event.js, encontramos as funções de descriptografia. Elas usam scrypt para transformar a senha em uma chave de 256 bits. Em seguida, descriptografam os dados com AES-GCM. O carregador escreve e executa o arquivo. O auxiliar event() descriptografa o arquivo, escreve o resultado no disco e retorna o caminho de saída.

Entidades-chave: Empresas: mathjs, Safe Dep