Dos paquetes joyfill npm comprometidos ejecutan RAT cuando se importan a Node.js – CYBERDEFENSA.MX

Las versiones beta de dos paquetes npm en el espacio de nombres @joyfill se han visto comprometidas para entregar un troyano de acceso remoto (RAT) asociado con el DESARROLLADOR#POPPER familia de programas maliciosos.

La lista de paquetes afectados es la siguiente:

  • @joyfill/layouts@0.1.2-2773.beta.0
  • @joyfill/components@4.0.0-rc24-2773-beta.4

Los dos paquetes «contienen un implante de JavaScript en el momento de la importación que resuelve el código cifrado a través de transacciones de Tron, Aptos y BNB Smart Chain», afirmó Socket. dicho en un análisis.

A diferencia de otros paquetes maliciosos que se activan mediante un enlace de ciclo de vida de npm, el implante entregado como parte de las bibliotecas de JavaScript se ejecuta cuando Node.js carga el punto de entrada del paquete CommonJS.

Vale la pena señalar que el uso de una estructura de resolución de múltiples cadenas de bloques que comprende Tron, Aptos y BNB Smart Chain (BSC) se ha vinculado a un grupo de amenazas rastreado como PolinRider, que se considera relacionado con Contagious Interview.

Ciberseguridad

A principios de este mes, Checkmarx y OpenSourceMalware destacaron un conjunto de paquetes npm maliciosos denominados colectivamente ViteVenom dirigidos al ecosistema de herramientas frontend de Vite utilizando la misma infraestructura de comando y control (C2) basada en blockchain para entregar una RAT con shell inverso, recolección de credenciales, exfiltración de archivos e inyección persistente de puerta trasera.

El implante consta de dos secuencias paralelas de acciones:

  • Una rama en proceso que conduce a una carga útil recuperada de JavaScript de 77 KB con similitudes con la familia de malware DEV#POPPER.
  • Una rama secundaria que inicia un proceso Node.js separado y solicita una carga útil de arranque independiente desde el 23.27.13.[.]43, descifra la respuesta y la evalúa.

Una vez que se carga el paquete, inicia un envío basado en blockchain que obtiene un hash de transacción BSC de la última transacción saliente de una dirección Tron codificada. Si este paso falla, consulta una cuenta de Aptos como alternativa para recuperar la transacción BSC y, a partir de ella, descifra y extrae el código JavaScript y lo ejecuta.

Tanto las sucursales en proceso como las independientes utilizan un conjunto distinto de direcciones de billetera, cuentas y transacciones para Tron, Aptos y BSC. El uso de blockchain también significa que ofrece resiliencia operativa y permite cambiar cargas útiles sin tener que publicar una nueva versión de los paquetes.

La primera carga útil en proceso es un cargador de JavaScript que emplea el método de resolución blockchain para recuperar un malware de segunda etapa llamado «clientCode». El proceso separado, por otro lado, consulta la dirección IP antes mencionada para obtener y ejecutar código JavaScript.

«Esta es una rama de entrega redundante, no una alternativa inofensiva», explicó Socket. «Está separado del proceso de importación de Node.js y puede continuar después de que salga un comando de compilación, prueba o CLI».

La carga útil final «clientCode» está muy ofuscada y funciona como una RAT de Node.js con las siguientes características, al tiempo que evita la ejecución en máquinas de desarrollo, CI o sandbox con los nombres de host github-runner, buildbot, buildkitsandbox y microsoft-standard-WSL2:

  • Cargar archivos al host de carga configurado
  • Recuperar JavaScript adicional
  • Recopile detalles básicos del anfitrión
  • Enviar mensajes de registro de estado
  • Lea los datos del portapapeles a través de PowerShell en Windows, pbpaste en macOS y xclip o xsel en Linux

Se han asociado dos cargas útiles con el proceso separado: el RAT «clientCode» y un ladrón de información de Python que puede recopilar una amplia gama de datos de hosts comprometidos. Se considera una iteración del malware OmniStealer, cuyos detalles fueron destacado por primera vez por eSentire a principios de abril.

Los datos recopilados por el malware se encuentran a continuación:

  • Información sobre el entorno y el anfitrión
  • Datos del Administrador de credenciales de Windows y del Servicio secreto de Linux
  • Datos de los navegadores Chromium y Firefox
  • Almacenamiento de extensiones de navegador para billeteras y administradores de contraseñas
  • credenciales de git
  • Configuración de la CLI de GitHub
  • Registros de escritorio de GitHub
  • Almacenamiento de código de Microsoft Visual Studio

Socket le dijo a The Hacker News que tanto ViteVenom como la última colección de paquetes npm están conectados a la misma operación en curso por parte de actores de amenazas norcoreanos, en lugar de representar campañas separadas.

Ciberseguridad

Según la empresa de seguridad de aplicaciones, se dice que ambas versiones maliciosas fueron publicadas por la misma identidad npm usando Node.js 18.20.0 y npm 10.5.0, con el código presente en el momento del paquete. Dicho esto, actualmente no está claro si esta inyección de código fuente se logró luego de comprometer una estación de trabajo de desarrollador, un repositorio de código fuente, un entorno de CI o credenciales de publicación.

Se recomienda a los desarrolladores que hayan instalado las versiones afectadas que las eliminen de los archivos de bloqueo, cachés, espejos internos, imágenes de compilación y artefactos de implementación, las fijen a una versión verificada y roten las credenciales del proceso Node.js afectado.

«La versión @joyfill/layouts debe ser tratada como capaz de ejecutar código arbitrario en el contexto de cualquier proceso que lo cargue», dijo Socket. «Esto incluye entornos de desarrollo, ejecutores de CI, herramientas de prueba, renderizado del lado del servidor y compilaciones».

«El código final recuperado puede recopilar información del host, establecer un canal de control remoto Socket.IO, ejecutar JavaScript o comandos de shell suministrados, cargar archivos, leer datos del portapapeles y modificar archivos que pertenecen a herramientas de desarrollo».

Microsoft advierte sobre una campaña de phishing de fotografías ZIP dirigida a hoteles con implante Node.js – CYBERDEFENSA.MX

Una campaña activa de phishing ha estado dirigida a hoteles y otras organizaciones hoteleras en Europa y Asia desde abril de 2026, utilizando archivos ZIP con temas fotográficos para colocar un implante Node.js y profundizar en las máquinas de la recepción, dice Microsoft.

La compañía no ha atribuido la actividad a ningún actor de amenazas conocido y el objetivo final de los operadores aún no está claro.

El atractivo reside en cómo funcionan los hoteles. Los correos electrónicos de phishing llevan el nombre para mostrar «Administrador de reservas (a través de Calendly)» y hacen referencia a quejas de los huéspedes, infestaciones de chinches, consultas sobre habitaciones, inspecciones sanitarias y reseñas de estadías.

Los señuelos venían en japonés, danés y holandés, siendo el japonés el más común. La línea de asunto no menciona ningún destinatario o propiedad, lo que indica un envío de gran volumen basado en listas en lugar de un phishing personalizado. La presión es reputacional: quejas, advertencias finales, amenazas de inspecciones.

Ciberseguridad

La entrega es la parte interesante. Los operadores enrutan mensajes a través del sistema de notificación por correo electrónico de Calendly y el servicio de redireccionamiento de URL de Google, un truco al que Microsoft llama lavado de autenticación. Los correos electrónicos enviados a través de la ruta directa de Calendly pasan por SPF, DKIM y DMARC, porque en realidad se envían desde una infraestructura autorizada.

Los controles confirman que el remitente tiene permiso para enviar. No dicen nada sobre para qué sirve el mensaje. Luego, una cadena de múltiples saltos guía a la víctima desde un enlace de Calendly a través de share.google y una redirección de Google a un dominio .cfd recién registrado y con Cloudflare. Ese dominio se encuentra detrás de un desafío Turnstile que también funciona como antianálisis.

Haga clic y el objetivo descargará un archivo llamado foto-.cremallera. Dentro hay un atajo que se hace pasar por una imagen: IMG-.png.lnk en la primera ola, FOTO-.png.lnk en el segundo.

Al abrirlo se activa PowerShell. El script utiliza aritmética BigInt para decodificar una URL de descarga oculta, extrae un .ps1 a %TEMP% y coloca un tiempo de ejecución legítimo de Node.js v24.13.0 desde nodejs.org en el espacio del usuario, que luego ejecuta el implante de JavaScript. No se necesita ninguna instalación de Node en todo el sistema.

El implante se rastrea como TonRAT. Resuelve sus dominios C2 a través de la API de blockchain de TON y luego abre un canal WebSocket cifrado, según SOC Prime. Obtener dominios sobre la marcha hace que las listas de bloqueo estáticas sean menos útiles.

Después del compromiso, el implante dirigió direcciones IP fijas a través de puertos no estándar: 8443, 8445, 8453, 5555 y 56001 a 56003. Algunos hosts también mostraron automatización del navegador sin cabeza (–headless –no-sandbox), una verificación de geolocalización de ip-api.com y un apagado forzado a través de cmd /c Shutdown -s -t 0. Microsoft no ha informado Robo de datos confirmado, ransomware o víctimas nombradas.

Ciberseguridad

La corrección completa debe afectar a ambas rutas de persistencia: la entrada RunOnce que apunta a ProgramData y la clave Run de Node.js, además de los archivos runtime y .js en AppData\Local\Nodejs. Tirar de uno deja al otro vivo. Los sistemas de recepción, reservas y front office son los primeros lugares donde buscar.

La campaña no es nueva. SOC Prime y ITOCHU documentó el mismo phishing de hotel y la cadena LNK-to-PowerShell-to-Node.js unas dos semanas antes, y Microsoft dice que sus hallazgos coinciden con esos informes.

El phishing con temas de reservas dirigido al personal del hotel ha sido un patrón recurrente, incluidas las campañas de ClickFix que utilizaron PureRAT para robar los inicios de sesión de Booking.com.

Lo que ninguno de los informes puede responder todavía es lo que quieren estos operadores. El acceso es duradero, es fácil equivocarse en la limpieza y la carga útil final no ha sido fijada. Esto es suficiente para tratar esto como algo más que otro phishing relacionado con reservas.

Seis vulnerabilidades de Proto6 en protobuf.js exponen aplicaciones de Node.js a RCE y DoS – CYBERDEFENSA.MX

Los investigadores de ciberseguridad han detectado media docena de vulnerabilidades en protobuf.js, una implementación de JavaScript y TypeScript de Protocol Buffers (Protobuf), que, si se explota con éxito, podría provocar ataques de ejecución remota de código (RCE) y de denegación de servicio (DoS).

«En los entornos afectados, un único esquema de protobuf malicioso, un descriptor o una carga útil diseñada podría ser suficiente para provocar fallos, corrupción del tiempo de ejecución o incluso la ejecución de código», afirma Assaf Morag, investigador de seguridad de Cyera. dicho. Las vulnerabilidades han sido nombradas en código. Proto6.

Protobuf es un mecanismo gratuito, de código abierto e independiente del idioma para serializar datos estructurados. Originalmente fue desarrollado y utilizado internamente por Google antes de estar disponible públicamente en 2008.

Las vulnerabilidades identificadas afectan a las aplicaciones Node.js que utilizan protobuf.js, bibliotecas cliente de Google Cloud y marcos de mensajería como Baileysy canales de CI/CD. Según Cyera, cualquier servicio Node.js que deserialice datos de Protobuf o genere código a partir de esquemas con protobuf.js probablemente también se vea afectado.

Ciberseguridad

A continuación se incluye una breve descripción de cada uno de los defectos:

  • CVE-2026-44289 (Puntuación CVSS: 7,5): DoS mediante recursividad ilimitada de protobuf
  • CVE-2026-44290 (Puntuación CVSS: 7,5): DoS en todo el proceso al cargar esquemas con rutas de opciones inseguras
  • CVE-2026-44291 (Puntuación CVSS: 8,1): dispositivo de generación de código después de la contaminación del prototipo
  • CVE-2026-44292 (Puntuación CVSS: 5,3): Inyección de prototipos en constructores de mensajes generados
  • CVE-2026-44294 (Puntuación CVSS: 5,3): DoS a partir de nombres de campos diseñados en el código generado
  • CVE-2026-44295 (Puntuación CVSS: 8,7): inyección de código en la salida estática de pbjs a partir de nombres de esquemas elaborados

Cyera dijo que todas las vulnerabilidades se derivan del manejo de esquemas y metadatos por parte de la biblioteca como confiables de forma predeterminada. Esta supervisión de la validación podría influir en el comportamiento de la aplicación y conducir a la ejecución del código.

«Si bien la explotación de estas vulnerabilidades generalmente requiere condiciones específicas, esas condiciones son cada vez más comunes en los ecosistemas de datos e inteligencia artificial que intercambian rutinariamente datos, esquemas y archivos de configuración entre servicios, repositorios, plataformas en la nube e integraciones de terceros», señaló Morag.

En un posible escenario de ataque, un mal actor podría introducir un esquema protobuf malicioso para envenenar los flujos de trabajo de CI/CD, filtrando secretos de compilación en el proceso (CVE-2026-44295) o bloquear servicios Node.js como los bots de WhatsApp creados con Baileys, una biblioteca TypeScript de automatización de API web de WhatsApp, por medio de un mensaje especialmente diseñado (CVE-2026-44292).

El más grave de todos es CVE-2026-44291, que provoca la ejecución de código cuando una aplicación Node.js acepta entradas controladas por un atacante.

«Esta información llega a un prototipo de dispositivo contra la contaminación», afirma el investigador de seguridad Vladimir Tokarev. explicado. «Más tarde, el mismo proceso usa protobuf.js para codificar o decodificar un mensaje. Debido a que protobuf.js resuelve nombres de tipos a través de búsquedas de propiedades simples, un Object.prototype contaminado puede hacer que una cadena controlada por un atacante parezca una primitiva de protobuf válida».

«Protobuf.js luego inserta esa cadena en una función codificadora o decodificadora generada y la compila con Function(). El atacante obtiene una ejecución arbitraria de JavaScript dentro del proceso Node.js».

Ciberseguridad

Las siguientes versiones de la herramienta son vulnerables:

  • protobuf.js: versiones <= 7.5.5 y >= 8.0.0 <= 8.0.1
  • protobufjs-cli: versiones <= 1.2.0 y >= 2.0.0 <= 2.0.1

Los parches para las fallas están disponibles en protobufjs 7.5.6 y 8.0.2, y protobufjs-cli 1.2.1 y 2.0.2. Se recomienda a los usuarios que apliquen las últimas correcciones para protegerse contra posibles amenazas.

«Debido a que protobuf.js se usa mucho dentro de bases de datos, almacenes de vectores, canales de inferencia, sistemas de orquestación, herramientas CI/CD y SDK en la nube, una explotación exitosa podría afectar las cargas de trabajo empresariales y de IA sensibles a escala», dijo Cyera.

«El software moderno trata cada vez más esquemas, metadatos y archivos de configuración como entradas confiables que impulsan la automatización, la orquestación y la generación de código. Cuando esas suposiciones de confianza se rompen, los datos pueden convertirse en comportamiento. Ese cambio crea nuevas superficies de ataque que los equipos de seguridad deben aprender a identificar y administrar».

Las vulnerabilidades de la biblioteca vm2 Node.js permiten el escape de Sandbox y la ejecución de código arbitrario – CYBERDEFENSA.MX

Se han revelado una docena de vulnerabilidades de seguridad críticas en la biblioteca vm2 Node.js que podrían ser aprovechadas por delincuentes para salir del entorno limitado y ejecutar código arbitrario en sistemas susceptibles.

vm2 es una biblioteca de código abierto que se utiliza para ejecutar código JavaScript que no es de confianza dentro de un espacio aislado seguro mediante la interceptación y la representación de objetos JavaScript para evitar que el código del espacio aislado acceda al entorno host.

Las fallas de seguridad se enumeran a continuación:

  • CVE-2026-24118 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar de la zona de pruebas a través de «__lookupGetter__» y permite a un atacante ejecutar código arbitrario en el host subyacente. (Afecta a versiones <= 3.10.4, parches en 3.11.0)
  • CVE-2026-24120 (Puntuación CVSS: 9,8): una omisión de parche para CVE-2023-37466 (Puntuación CVSS: 9,8) que podría permitir a los atacantes escapar del entorno limitado a través de la propiedad de especie de los objetos prometidos y ejecutar comandos arbitrarios en el host subyacente. (Afecta a las versiones <= 3.10.3, parcheado en 3.10.5)
  • CVE-2026-24781 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox mediante la función «inspeccionar» y permite a un atacante ejecutar código arbitrario en el host subyacente. (Afecta a versiones <= 3.10.3, parches en 3.11.0)
  • CVE-2026-26332 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox mediante «SuppressedError» y permite a un atacante ejecutar código arbitrario en el host subyacente. (Afecta a versiones <= 3.10.4, parches en 3.11.0)
  • CVE-2026-26956 (Puntuación CVSS: 9,8): una vulnerabilidad de falla del mecanismo de protección que permite el escape del sandbox con la ejecución de código arbitrario al desencadenar un TypeError producido por la coerción de símbolo a cadena. (Afecta a la versión 3.10.4, confirmada en Node.js 25.6.1, parcheada en 3.10.5)
  • CVE-2026-43997 (Puntuación CVSS: 10.0): una vulnerabilidad de inyección de código que permite a un atacante obtener el objeto host y escapar del entorno limitado, lo que lleva a la ejecución de código arbitrario. (Afecta a las versiones <= 3.10.5, parcheado en 3.11.0)
  • CVE-2026-43999 (Puntuación CVSS: 9,9): una vulnerabilidad que permite eludir la lista de permitidos integrada de NodeVM y permite a un atacante cargar funciones integradas excluidas como child_process y lograr la ejecución remota de código. (Afecta a la versión 3.10.5, parcheada en 3.11.0)
  • CVE-2026-44005 (Puntuación CVSS: 10.0): una vulnerabilidad que permite que JavaScript controlado por un atacante escape del entorno limitado y habilite la contaminación de prototipos. (Afecta a las versiones 3.9.6-3.10.5, parcheado en 3.11.0)
  • CVE-2026-44006 (Puntuación CVSS: 10.0): una vulnerabilidad de inyección de código a través de «BaseHandler.getPrototypeOf» que permite el escape del entorno aislado y la ejecución remota de código. (Afecta a las versiones <= 3.10.5, parcheado en 3.11.0)
  • CVE-2026-44007 (Puntuación CVSS: 9,1): una vulnerabilidad de control de acceso inadecuado que permite el escape del sandbox y la ejecución de comandos arbitrarios del sistema operativo en el host subyacente. (Afecta a las versiones <= 3.11.0, parcheado en 3.11.1)
  • CVE-2026-44008 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox mediante «neutralizeArraySpeciesBatch()» y permite a un atacante ejecutar comandos arbitrarios en el host subyacente. (Afecta a las versiones <= 3.11.1, parcheado en 3.11.2)
  • CVE-2026-44009 (Puntuación CVSS: 9,8): una vulnerabilidad que permite escapar del sandbox a través de una excepción de protocolo nulo y permite a un atacante ejecutar comandos arbitrarios en el host subyacente. (Afecta a las versiones <= 3.11.1, parcheado en 3.11.2)
Ciberseguridad

La divulgación se produce un par de meses después de que el mantenedor de vm2, Patrik Simek, lanzara parches para otra falla crítica de escape del sandbox (CVE-2026-22709, puntuación CVSS: 9.8) que podría conducir a la ejecución de código arbitrario en el sistema host subyacente.

La serie de escapes de sandbox recientemente identificados ilustra el desafío de aislar de forma segura el código que no es de confianza en entornos de sandbox basados ​​en JavaScript, y Simek reconoció anteriormente que probablemente se descubrirán nuevos bypass en el futuro. Se recomienda a los usuarios de vm2 que actualicen a la última versión (3.11.2) para una protección óptima.