HeadlinesBriefing favicon HeadlinesBriefing.com

Cargador cifrado en biblioteca NPM

Hacker News •
×

Encontramos un implante de acceso remoto oculto dentro de mathmain, un paquete npm que copia la popular biblioteca mathjs. El código malicioso se distribuye cifrado. Permanece inactivo hasta que un programa resuelve una ecuación específica con la biblioteca. Esa ecuación es la clave. Cuando la clave coincide, el paquete descifra una carga útil y la ejecuta. La carga útil recibe comandos del atacante y los ejecuta en el host. Utiliza un servicio de chat público y una red blockchain para su canal de comandos.

Comenzamos con un análisis de Safe Dep de mathmain el 17 de septiembre de 2026. El paquete parecía una copia de mathjs con un nombre diferente y código ofuscado. Una llamada añadida en el solucionador nos llevó al cargador. Cerca del final de lusolve(), encontramos una llamada adicional en la compilación de Common JS. El solucionador ya había calculado su resultado. Luego pasó datos de la matriz triangular inferior para llamar a remove Solve Validation().

Seguimos remove Solve Validation() hasta is Graph(x) en lib/cjs/utils/is.js. La función añadida is Graph() descifra y carga código. Convierte su entrada en una cadena JSON y usa esa cadena como contraseña. Primero descifra un nombre de archivo. Luego pasa la ruta del archivo y la contraseña a event(), y carga la ruta devuelta con require().

Los datos de la matriz se convierten en una contraseña. En lib/cjs/utils/event.js, encontramos las funciones de descifrado. Utilizan scrypt para convertir la contraseña en una clave de 256 bits. Luego descifran los datos con AES-GCM. El cargador escribe y ejecuta el archivo. El ayudante event() descifra el archivo, escribe el resultado en el disco y devuelve la ruta de salida.

Entidades clave: Empresas: mathjs, Safe Dep

Preguntas frecuentes: ¿Cómo descifra su carga útil el paquete npm malicioso mathmain?

El paquete utiliza una ecuación específica resuelta por la biblioteca mathjs como clave. Cuando se resuelve la ecuación, los datos de la matriz resultantes se convierten en una cadena JSON y se utilizan como contraseña para descifrar la carga útil mediante scrypt y AES-GCM.

Pregunta frecuente: ¿Cómo descifra su carga útil el paquete npm malicioso mathmain?

Respuesta frecuente: El paquete utiliza una ecuación específica resuelta por la biblioteca mathjs como clave. Cuando se resuelve la ecuación, los datos de la matriz resultantes se convierten en una cadena JSON y se utilizan como contraseña para descifrar la carga útil mediante scrypt y AES-GCM.