Cabecera blog ciberseguridad

CVE-2025-55182: Vulnerabilidad crítica de Ejecución Remota de Código (RCE) en React Server Components

La CVE-2025-55182 es una vulnerabilidad crítica que ya está siendo explotada

La vulnerabilidad crítica CVE-2025-55182 permite a un atacante no autenticado ejecutar código arbitrario en el servidor y ya está siendo explotada de manera activa

La vulnerabilidad CVE-2025-55182, también conocida en la comunidad como «React2Shell», representa una amenaza de seguridad de máxima gravedad para las aplicaciones que utilizan React Server Components (RSC). Con una puntuación CVSS de 10.0 (Crítica). Esta vulnerabilidad permite a un atacante no autenticado ejecutar código arbitrario en el servidor, pudiendo comprometer la infraestructura subyacente. Actualmente la vulnerabilidad está siendo explotada de manera activa por grupos como Earth Lamia y Jackpot Panda así como redes de anonimización.

1. Descripción técnica de la vulnerabilidad

CVE-2025-55182 es una vulnerabilidad de deserialización insegura presente en el protocolo Flight de React, que es la base para la comunicación de datos en los React Server Components.

Componente Afectado y Mecanismo de Explotación

  1. Componentes Afectados: La vulnerabilidad reside específicamente en la lógica de manejo de payloads del lado del servidor de los React Server Components, que está implementada en los paquetes react-server-dom-parcel, react-server-dom-webpack, y react-server-dom-turbopack. Frameworks como Next.js (utilizando el App Router) y otros que dependen de RSC están en riesgo. Las aplicaciones son vulnerables, aunque no utilicen funciones de servidor, siempre y cuando soporten RSC.
  2. Raíz del Problema: La vulnerabilidad ocurre porque el proceso de deserialización del protocolo Flight no valida adecuadamente las estructuras de datos que se reconstruyen a partir del payload de la solicitud. Este mecanismo permite que un atacante inyecte un payload específicamente diseñado para manipular el prototipo de objetos de JavaScript (_proto_) en el servidor, lo que se conoce como Prototype Pollution del lado del servidor.
  3. Explotación (RCE): Al explotar la Prototype Pollution, el atacante puede corromper las propiedades de objetos internos, lo que a su vez puede llevar a la ejecución de funciones peligrosas (como child_process.execSync u otras funciones nativas) a través del proceso Node.js que ejecuta la aplicación. Esto resulta en una Ejecución Remota de Código (RCE) no autenticada.

Versiones Vulnerables

La vulnerabilidad afecta principalmente a las siguientes versiones de los productos:

  • React: Versiones 19.0.0, 19.1.0, 19.1.1 y 19.2.0.
  • Next.js: Versiones que implementan RSC, incluyendo series 14.3.0-canary.77 y superiores, series 15 y 16.

2. Detección y protección

La respuesta rápida es crucial dada la criticidad de la vulnerabilidad y la existencia de exploits públicos (PoC) y explotación activa.

Detección (Indicadores de Compromiso – IoC)

Los equipos de seguridad deben buscar inmediatamente los siguientes indicadores en sus logs de tráfico HTTP y logs del sistema:

Tipo de IoCDescripciónPatrones a buscar en logs
TelemetríaDesde el EDR es posible buscar TTPs compatibles con la explotación de vulnerabilidades en Node.jsEjecución de comandos comunes de ataque (relativos a shells, reconocimiento, descarga de payloads, conexiones inversas, etc.) donde le proceso padre sea Node.js (node o node.exe)
Tráfico HTTPSolicitudes dirigidas a endpoints RSC con headers específicos de acción de servidor y payloads maliciosos.Solicitudes POST con headers como next-action o rsc-action-id.
PayloadsCuerpos de solicitud HTTP que contienen patrones asociados con la inyección de prototipos o comandos.Patrones como $@ o status«:»resolved_model«, que son comunes en proof-of-concepts (PoC).
Actividad del HostComandos de reconocimiento o acciones inesperadas ejecutadas por el proceso de la aplicación Node.js/React.Ejecución de comandos como whoami, id, uname o intentos de lectura del archivo /etc/passwd o escrituras sospechosas en directorios temporales (/tmp/).
Escaneo/SondeoTráfico de escáneres que buscan una respuesta de error específica de las versiones vulnerables.Solicitudes que intentan provocar un código de estado 500 con el patrón de error E{"digest" en el cuerpo de la respuesta.

Regla Sigma para detectar algunas formas de explotación de este RCE entornos Windows

title: Node.js Suspicious Child Process & Recon (React2Shell Windows)
status: experimental
description: |
Detects Node.js spawning shells (CMD/PS) or reconnaissance binaries/LOLBins.
Designed to catch RCE payloads from CVE-2025-55182 exploiting React Server Components.
logsource:
product: windows
category: process_creation
detection:
selection_parent:
ParentImage|endswith:
- '\node.exe'
- '\pm2.exe'
- '\bun.exe'

selection_child_shell:
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
- '\powershell_ise.exe'
- '\pwsh.exe'

selection_child_recon_binary:
Image|endswith:
- '\whoami.exe'
- '\hostname.exe'
- '\systeminfo.exe'
- '\ipconfig.exe'
- '\certutil.exe'
- '\curl.exe'
- '\net.exe'
- '\net1.exe'

selection_cmdline_suspicious:
CommandLine|contains:
- 'wget'
- 'iwr'
- 'DownloadString'
- '-enc '
- 'bypass'

condition: selection_parent and (selection_child_shell or selection_child_recon_binary or selection_cmdline_suspicious)
falsepositives:
- Developer workstations running local servers.
- Build agents (Azure DevOps agents).
level: critical
tags:
- attack.execution
- attack.discovery
- cve.2025.55182

Regla Sigma para detectar algunas formas de explotación de este RCE entornos Linux

title: Node.js Suspicious Child Process & Recon (React2Shell Linux)
status: experimental
description: |
Detects Node.js spawning shells, reconnaissance tools, or network utilities.
This covers direct execution (spawn) and shell execution (exec) typical in CVE-2025-55182 (Reac2Shell).
logsource:
product: linux
category: process_creation
detection:
selection_parent:
ParentImage|endswith:
- '/node'
- '/node-current'
- '/pm2'
- '/npm'

selection_child_shell:
Image|endswith:
- '/bash'
- '/sh'
- '/dash'
- '/zsh'
- '/ash'

selection_child_recon_binary:
Image|endswith:
- '/whoami'
- '/id'
- '/curl'
- '/wget'
- '/nc'
- '/ncat'

selection_cmdline_suspicious:
CommandLine|contains:
- 'whoami'
- 'uname -a'
- '/etc/passwd'
- '/dev/tcp/'
- 'curl '
- 'wget '
- 'base64 -d'

condition: selection_parent and (selection_child_shell or selection_child_recon_binary or selection_cmdline_suspicious)
falsepositives:
- Valid maintenance scripts executed via npm run.
- CI/CD Runners (GitHub Actions).
level: critical
tags:
- attack.execution
- attack.discovery
- cve.2025.55182

Protección y Mitigación

La protección definitiva es la actualización (patching), pero existen mitigaciones temporales si la actualización inmediata no es viable.

1. Actualización de Software (Solución Definitiva)

La única solución completa es actualizar a las versiones parcheadas, ya que estas incluyen un manejo reforzado de las entradas del usuario para evitar la deserialización insegura.

2. Mitigación Temporal (WAF/Virtual Patching)

Si no puede actualizar inmediatamente, puede aplicar una mitigación de virtual patching con un Web Application Firewall (WAF):

  • Reglas de WAF: Implemente reglas para bloquear solicitudes HTTP que contengan los patrones de payloads sospechosos identificados en la sección de detección, especialmente aquellos dirigidos a endpoints RSC y que contengan patrones de inyección de prototipos.
  • Servicios Cloud: Utilice las firmas de WAF de proveedores de cloud (como Cloudflare, AWS WAF, etc.), ya que muchos han lanzado reglas específicas para detectar y bloquear intentos de explotación de CVE-2025-55182.

3. Prevención mediante configuración segura

Dada la naturaleza de los ataques RCE es posible la prevención, o al menos limitar el alcance, de la afectación de dichos ataques mediante la implantación de protocolos de seguridad, como el de mínimo privilegio necesario, limitando las acciones que un atacante podría realizar en gran medida; así como configuraciones seguras como la activación de logs que ayuden a detectar e investigar un posible ataque.

3. Conclusión y Recomendación

CVE-2025-55182 es una vulnerabilidad de día cero de alta severidad que está siendo activamente explotada. Las recomendaciones principales e ineludibles son:

  • Establecer actividades de Threat Hunting Proactivo para identificar explotaciones exitosas de esta vulnerabilidad.
  • Actualización urgente de todos los componentes de React Server Components y frameworks dependientes (como Next.js) a las versiones parcheadas. La mitigación con WAF es un paliativo temporal, pero no un reemplazo para la solución definitiva a nivel de código. Implementación de protocolos y configuraciones seguras para limitar la afectación.