Una vulnerabilidad crítica en React Server Components, conocida como React2Shell y rastreada como CVE-2025-55182, está siendo explotada activamente para desplegar una nueva puerta trasera de Linux llamada PeerBlight. Este malware convierte los servidores comprometidos en nodos proxy y de comando y control encubiertos. Los atacantes utilizan una única solicitud HTTP diseñada para ejecutar código arbitrario en aplicaciones vulnerables de Next.js y React.
La vulnerabilidad React2Shell surge de un problema de deserialización insegura en la forma en que React Server Components manejan los “chunks” de React Flight. Un atacante no autenticado puede inyectar lógica maliciosa a través de un objeto “thenable” especialmente diseñado, obligando al servidor a ejecutar JavaScript arbitrario durante el renderizado del lado del servidor. Esta falla afecta a varias versiones del paquete react-server-dom y se ha observado en ataques contra aplicaciones Next.js expuestas a internet, a menudo iniciados con comandos simples de curl o wget para descargar scripts shell y payloads ELF.
Los investigadores de seguridad han notado escaneos activos utilizando un escáner React2Shell disponible públicamente, identificable por su User-Agent predeterminado en los logs. La explotación ha ocurrido en entornos reales, permitiendo actividades posteriores como entrega de malware, minería de criptomonedas y mecanismos de persistencia.
Una vez dentro, los atacantes despliegan PeerBlight, una puerta trasera sofisticada para Linux con una estructura de comando y control (C2) multicapa. Inicialmente se conecta a un servidor C2 codificado de forma fija en 185.247.224.41:8443, negociando claves de sesión AES-256 a través de apretones de manos cifrados con RSA. El malware envía beacons JSON que detallan la arquitectura del host, el sistema operativo y un identificador de grupo de campaña. Si el C2 principal falla, recurre a un algoritmo de generación de dominios (DGA) que crea hasta 200 pares dominio-puerto, y en última instancia aprovecha la red BitTorrent DHT con un prefijo de ID de nodo distintivo “LOLlolLOL” para el descubrimiento C2 peer-to-peer.
Para persistencia y sigilo, PeerBlight se copia a /bin/systemd-daemon y se registra como systemd-agent en sistemas que usan systemd, o deja un trabajo Upstart en distribuciones antiguas. Sobrescribe argv y nombres de procesos para imitar un hilo del kernel [ksoftirqd], evadiendo la detección en listas de procesos.
La puerta trasera maneja al menos 10 tipos de comandos basados en JSON, incluyendo cargas y descargas de archivos, generación de reverse-shell, modificaciones de permisos, ejecución de binarios arbitrarios y actualizaciones en memoria. Esta configuración transforma los hosts infectados en nodos proxy resilientes para intrusiones adicionales y movimiento lateral.
La misma campaña también ha introducido herramientas como CowTunnel (un reverse-proxy basado en xfrpc), ZinFoq (un implante Go con pivoteo SOCKS5 y timestomping), mineros XMRig y una variante del botnet Kaiji para funciones DDoS y watchdog. Las organizaciones que usan React Server Components o Next.js vulnerables deben aplicar parches inmediatamente y monitorear indicadores de PeerBlight, como sus binarios, archivos systemd-agent, nodos DHT LOLlolLOL y tráfico a endpoints C2 conocidos.