- Advertisement -spot_img

La versión comprometida de jscrambler 8.14.0 npm elimina Rust Infostealer durante la instalación

El paquete jscrambler npm se vio comprometido y con solo instalar su versión 8.14.0 se ejecuta un robo de información en su máquina. Publicada el 11 de julio de 2026, la versión maliciosa incluye un gancho de preinstalación que coloca y ejecuta un binario nativo, uno para Windows, otro para macOS y otro para Linux.

Socket marcó el lanzamiento seis minutos después de su publicación. Si usted o uno de sus sistemas de compilación lo abrió en esa ventana, la carga útil ya se ejecutó con cualquier acceso que tuviera su proceso de instalación.

Nada de esto está en la versión anterior, 8.13.0. El paquete diff muestra dos archivos nuevos en dist/: setup.js, un pequeño cargador e intro.js. A pesar del nombre, intro.js no es JavaScript sino un contenedor de aproximadamente 7,8 MB que contiene tres archivos binarios nativos comprimidos con gzip, uno para Linux, uno para Windows y otro para macOS.

Durante la instalación, setup.js elige el binario para el sistema operativo host, lo escribe con un nombre aleatorio en el directorio temporal del sistema, lo marca como ejecutable y lo inicia separado con su salida oculta.

Los archivos agregados están en el paquete publicado, pero en ninguna parte de la fuente pública de jscrambler. StepSecurity y SafeDep extrajeron y analizaron la versión, y ambos informan que no hay confirmaciones, etiquetas o solicitudes de extracción coincidentes para 8.14.0 en el repositorio de GitHub.

Su última etiqueta sigue siendo 8.13.0. La versión se envió directamente a npm con una cuenta de mantenimiento legítima, sin pasar por el flujo de lanzamiento normal del proyecto. Eso apunta a una cuenta npm comprometida o una canalización de compilación. Cuál de los dos no ha sido establecido.

La carga útil es un ladrón de información de Rust, creado para las tres plataformas, que busca secretos en una máquina de desarrollador y los envía a un servidor directo a través de TLS, según el análisis actualizado de Socket y una declaración a The Hacker News.

La lista de objetivos es amplia y está dirigida a desarrolladores: credenciales de nube de AWS, Azure y Google Cloud, incluidos los puntos finales de metadatos que utilizan los corredores de CI; billeteras de criptomonedas y frases iniciales de MetaMask, Phantom y Exodus; la bóveda del administrador de contraseñas de Bitwarden; contraseñas y cookies almacenadas en el navegador; y sesiones de Discord, Slack, Telegram y Steam.

LEER  Aplicaciones de historial de llamadas falsas robaron pagos de los usuarios después de 7,3 millones de descargas de Play Store

También busca algo más nuevo: los archivos de configuración para herramientas de codificación de IA, incluidos Claude Desktop, Cursor, Windsurf, VS Code y Zed, donde tienden a ubicarse las claves API y las credenciales del servidor Model Context Protocol.

Los binarios hacen más que robar. En Linux, la carga útil vincula la biblioteca BPF del kernel y puede cargar un programa eBPF directamente en el kernel desde la memoria. Se trata de un punto de apoyo en el núcleo, no del acceso a archivos del espacio de usuario del que depende el resto del ladrón. Tanto StepSecurity como SafeDep señalaron la capacidad, aunque lo que hace el eBPF aún se está desmantelando.

Las compilaciones de Windows y macOS agregan comprobaciones antidepuración y el ladrón se conecta de forma persistente para sobrevivir a un reinicio: una tarea oculta programada de Windows configurada para reiniciarse cada minuto y un LaunchAgent de macOS que se recarga al iniciar sesión. Sus detalles de comando y control permanecen cifrados en el binario y nunca aparecen en el análisis estático.

El monitoreo del tiempo de ejecución de StepSecurity detectó que el binario caído llegaba a dos direcciones IP codificadas y a la infraestructura Tor, los primeros indicadores de red publicados para la campaña.

jscrambler es una herramienta en tiempo de compilación, que se instala como una dependencia de desarrollo o se ejecuta desde CI. Esos entornos contienen lo que recopila el ladrón: claves de nube, tokens de implementación y código fuente al que puede acceder un proceso de compilación o CI.

Fuente: Paso Seguridad

El paquete recibe alrededor de 15.800 descargas por semana y aún no se sabe cuántas extrajeron la versión comprometida. Esa es una huella mucho menor que la de los paquetes afectados en los grandes compromisos de npm del año pasado, que generan miles de millones de descargas por semana entre ellos.

LEER  INFORME DE TARIFICO AI: Todo lo que necesita saber

Sin embargo, para un ladrón cuyo objetivo era construir máquinas, el alcance nunca fue el objetivo. El acceso es.

El gusano Shai-Hulud se ejecutó desde un gancho de instalación para robar tokens y se propagó a través de cientos de paquetes en septiembre. Los paquetes de tiza y depuración ampliamente utilizados se tomaron a través de una cuenta de mantenimiento fraudulenta y se utilizaron para redirigir pagos criptográficos.

En marzo, una cuenta secuestrada introdujo un troyano multiplataforma en Axios, una biblioteca HTTP con más de 83 millones de descargas semanales. Lo que hace que el momento sea preciso es que npm acababa de actuar en contra de esta ruta exacta: npm 12 se envió el 8 de julio, tres días antes de este lanzamiento, con los scripts de instalación de dependencia desactivados de forma predeterminada.

En npm 12, un enlace de preinstalación como este no se ejecuta a menos que alguien lo apruebe. Los clientes más antiguos todavía los ejecutan automáticamente.

Desde entonces, la versión 8.15.0 la reemplazó en la parte superior de la lista de versiones de npm, se publicó desde la misma cuenta de mantenimiento y no muestra ninguna de las alertas de malware activadas por la 8.14.0: sin script de instalación, sin binario incluido. Pero la versión 8.14.0 no fue eliminada.

Todavía está en npm, por lo que cualquier archivo de bloqueo o comando fijado en él sigue instalando el ladrón. Sólo se vio afectado el paquete CLI principal; Los complementos jscrambler para webpack, gulp, Metro y grunt se mantuvieron en sus versiones limpias de junio, sin ganchos de instalación.

Que hacer ahora

  1. Bájese de 8.14.0. Vaya a 8.15.0 o fije a 8.13.0 para obtener una versión anterior al incidente y borre jscrambler@8.14.0 de los archivos de bloqueo y cachés.
  2. Averigua si instalaste 8.14.0. Verifique los archivos de bloqueo y los registros del administrador de paquetes para jscrambler@8.14.0 y los registros de CI para cualquier ejecución de dist/setup.js, a partir del 11 de julio. El cargador coloca su carga útil bajo un nombre aleatorio en el directorio temporal, por lo que no hay un nombre binario fijo para buscar; En su lugar, alinee las marcas de tiempo de instalación con los procesos secundarios de Node y la ejecución del directorio temporal. En Windows, consulte el Programador de tareas para ver si hay tareas ocultas; en macOS, inspeccione ~/Library/LaunchAgents en busca de listas desconocidas.
  3. Si 8.14.0 se ejecutó en una máquina, trate todos los secretos a los que pueda acceder como robados, no simplemente expuestos. Rotar claves de nube, tokens de npm y GitHub, y claves de API de MCP y herramientas de IA; revocar sesiones de Discord, Slack, navegador y Bitwarden; y sacar cualquier criptomoneda de las billeteras en ese host. Bloquee las dos IP de comando y control que se enumeran a continuación.
LEER  Nueva puerta trasera Mistic vinculada a KongTuke en campañas ClickFix y ModeloRAT

La limpieza fue rápida, pero un ladrón hace su trabajo segundos después de la instalación. Una compilación anclada a 8.14.0, en un cliente anterior que ejecuta scripts de instalación, aún ejecuta la carga útil. Y en cualquier máquina que ya lo ejecutara, los secretos desaparecieron antes de que 8.15.0 llegara a la cima de la lista.

Indicadores de compromiso

Paquete malicioso: jscrambler@8.14.0. Hashes SHA-256 para los archivos agregados y sus cargas útiles descomprimidas:

  • dist/setup.js: a742de963f14a92d24ebcbc7b44ac867e23a20d31d1b0094a13a4f83287f4e60
  • dist/intro.js: a41a523ef9517aab37ed6eea0ec881821bdcb7aefcb5c5f603adc7907f868c86
  • Carga útil de Linux: fbbcf4d8f98168f78f5c0c47a9ae56d59ec8ac84a7c9ca6b797fedfb8d62d2bd
  • Carga útil de Windows: b7ca95d1b23c8e67416a25cedf741de0917c2096bbc9d24649eea7853d054903
  • Carga útil de macOS: c8fd47d36bdf7c825378593ab82ed8c24d1dc52e26b507812393e24e1d5201fd

Puntos finales de red StepSecurity observados en tiempo de ejecución. Las dos IP son los puntos finales del atacante directo; el binario también llega a la infraestructura Tor, probablemente para conectividad o enrutamiento:

  • IP C2: 37.27.122(.)124
  • IP C2: 57.128.246(.)79
  • Infraestructura Tor: check.torproject(.)org, archive.torproject(.)org

Artefactos en el host: un archivo oculto con nombre aleatorio en el directorio temporal del sistema, con el formato . {aleatorio} o . {random}.exe en Windows, además de una tarea programada oculta de Windows o un LaunchAgent de macOS para persistencia.

- Advertisement -spot_img

LEAVE A REPLY

Please enter your comment!
Please enter your name here

Últimos artículos

Granblue Fantasy: Relink – Revisión de Endless Ragnarok – Aquí vamos...

BDespués de que salió por primera vez hace más de dos años, encontramos muchas razones para que nos...

Noticias relacionadas

- Advertisement -spot_img