Skip to content
KitploitKITPLOIT
HerramientasBlog
Log in
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2025-55182 — "Una solicitud HTTP especialmente manipulada puede comprometer todo tu servidor." — React Security Team, dic. 2025 | Kitploit
Herramientas/GitHubGitHub/logesh-git001/cve-2025-55182
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebInteligencia de AmenazasAprendizaje y EducaciónRespuesta a Incidentes
GitHublogesh-git001/cve-2025-55182

CVE-2025-55182

"Una solicitud HTTP especialmente manipulada puede comprometer todo tu servidor." — React Security Team, dic. 2025

Ver Repositorio
210hace 5 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2025-55182 — React2Shell

Ejecución remota de código crítica en React Server Components.

Gravedad: CRÍTICA | CVSS v3.1: 10.0 (Máxima) | Estado: Explotado activamente


¿Qué es esto?

React2Shell es una vulnerabilidad de seguridad crítica en React Server Components (RSC) — una funcionalidad moderna que permite a React ejecutar partes de tu aplicación web en el servidor en lugar del navegador.

La falla permite que cualquier atacante en internet — sin inicio de sesión, sin acceso especial y sin conocimiento previo de tu sistema — envíe una única solicitud HTTP maliciosa a tu servidor y ejecute cualquier código que desee en él. Eso significa que puede robar datos, instalar malware, bloquear tus archivos con ransomware o tomar el control total de tu servidor.

Piénsalo así: tu servidor tiene una puerta que se suponía que solo se abría para visitantes de confianza, pero resulta que cualquiera puede entrar — solo con llamar de una manera específica.


Referencia rápida

PropiedadValor
ID CVECVE-2025-55182 (también llamado React2Shell)
GravedadCrítica — Ejecución remota de código (RCE)
Puntuación CVSS v3.110.0 / 10.0 (la máxima posible)
Puntuación CVSS v49.3 / 10.0
Tipo de debilidadCWE-502 — Deserialización de datos no confiables
Método de ataqueUna única solicitud HTTP POST, sin autenticación necesaria
Descubierto porLachlan Davidson (investigador de seguridad)
Divulgado3 de diciembre de 2025
Estado del exploitExploit público disponible — utilizado activamente por atacantes
CVE relacionadoCVE-2025-66478 (Next.js — duplicado confirmado)

¿Quién está afectado?

Versiones de React vulnerables```

react-server-dom-webpack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-parcel — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0 react-server-dom-turbopack — versions 19.0.0, 19.1.0, 19.1.1, 19.2.0

### Frameworks Afectados

| Framework / Herramienta   | Alcance Afectado                                    |
|---------------------------|-----------------------------------------------------|
| **Next.js 15.x – 16.x**   | Solo App Router — Pages Router **NO** está afectado |
| **React Router RSC**      | Solo canal inestable / vista previa                 |
| **Redwood SDK**           | Solo modo RSC                                       |
| **Waku**                  | Todas las versiones con RSC habilitado              |
| **Expo**                  | Solo builds de vista previa RSC                     |
| **Vite RSC Plugin**       | Todas las integraciones                             |
| **Parcel RSC Plugin**     | Todas las integraciones                             |
| **Cualquier setup RSC personalizado** | Cualquier servidor que use deserialización de RSC Flight |

> ⚠️ **Importante:** Eres vulnerable incluso si no usas Server Actions o Server Functions explícitamente, siempre que React Server Components estén habilitados en tu aplicación.

> ✅ **No afectados:** Aplicaciones que usan solo el Pages Router, o aplicaciones sin React del lado del servidor en absoluto.

---

## ¿Por Qué Es Tan Peligroso?

Tres razones hacen que React2Shell sea excepcionalmente grave:

1. **No requiere autenticación.** Cualquier persona en internet puede intentar este ataque. No se necesita cuenta, token ni acceso previo.

2. **Funciona en instalaciones predeterminadas.** Una aplicación Next.js recién creada con `create-next-app` — sin configuración personalizada — es explotable de inmediato. Los desarrolladores no tienen que hacer nada mal para ser vulnerables.

3. **Fiabilidad cercana al 100%.** Los investigadores de seguridad confirmaron que el exploit funciona casi siempre contra servidores sin parchear.

---

## ¿Cómo Funciona el Ataque?

### La Causa Raíz — En Lenguaje Sencillo

Cuando tu servidor React recibe datos de un cliente, procesa (deserializa) esos datos para entender qué hacer a continuación. El problema es que React **nunca comprueba si esos datos son seguros o legítimos** — confía ciegamente en lo que llegue.

Un atacante explota esto enviando datos especialmente diseñados que secuestran el comportamiento interno de JavaScript en el servidor, lo que finalmente le permite inyectar y ejecutar su propio código.

### Explicación Técnica

El exploit utiliza una técnica llamada **contaminación de prototipos**:

1. El atacante envía una solicitud HTTP POST manipulada a cualquier endpoint RSC (no se necesita una URL especial).
2. El parser del protocolo React Flight procesa la carga útil sin ninguna validación estructural.
3. La carga útil maliciosa contamina `Object.prototype.then` — un objeto fundamental de JavaScript del que heredan todos los demás objetos.
4. Esto le otorga al atacante acceso al constructor `Function` de JavaScript.
5. El atacante usa el constructor `Function` para ejecutar código arbitrario como proceso del servidor Node.js.```
Step 1 — Attacker sends crafted HTTP POST
         ↓
Step 2 — React deserializes payload blindly
         ↓
Step 3 — Object.prototype.then is hijacked (prototype pollution)
         ↓
Step 4 — Function constructor is accessed
         ↓
Step 5 — Attacker's code runs on the server
         ↓
Step 6 — Attacker has full server control

Ilustración simplificada de código```js

// This is a simplified version of the vulnerable code path inside React function parseFlightRequest(req) { const flight = req.body;

// ❌ NO validation — the server trusts whatever arrives
const decoded = dangerousDeserialize(flight);  // Attack happens here

// If the attacker controls decoded.action → RCE
return executeServerReference(decoded.action);

}

### Cómo se ve el ataque```http
POST /?flight=1 HTTP/1.1
Content-Type: text/plain

{
  "status": "resolved_model",
  "$1:__proto__:then": "node:process.mainModule.require('child_process').execSync('id > /tmp/rce')",
  "_formData.get": "$1:constructor:constructor"
}

The input chunk appears to be empty. No content was provided for translation. Please re-send the chunk text.```bash

Simplified cURL version of the exploit

curl -X POST https://target.com/react?flight=1
-H "Content-Type: text/plain"
--data '["$ACTION_REF","proto","constructor","<attacker_payload>"]'

> 🚫 **Aviso legal:** No uses esto contra ningún sistema que no sea tuyo o para el que no tengas autorización escrita explícita.

---

## Versiones corregidas — Parchea ahora

### Paquetes React RSC

| Paquete                      | Versión parcheada            |
|------------------------------|------------------------------|
| `react-server-dom-webpack`   | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-parcel`    | 19.0.1, 19.1.2, **19.2.1+** |
| `react-server-dom-turbopack` | 19.0.1, 19.1.2, **19.2.1+** |

> 💡 **Recomendación:** Actualiza a **19.2.3** para corregir también vulnerabilidades relacionadas posteriores (CVE-2025-55183, CVE-2025-55184, CVE-2025-67779).

### Next.js

| Tu versión | Actualiza a |
|------------|-------------|
| 13.x / 14.x  | **14.2.35** |
| 15.0.x       | **15.0.5**  |
| 15.1.x       | **15.1.9**  |
| 15.2.x       | **15.2.6**  |
| 15.3.x       | **15.3.6**  |
| 15.4.x       | **15.4.8**  |
| 15.5.x       | **15.5.7**  |
| 16.0.x       | **16.0.7**  |

---

## Cómo protegerte — Paso a paso

Sigue estos pasos **en orden**. Los pasos 1 y 2 son obligatorios. El resto añade capas adicionales de defensa.

### Paso 1 — Actualiza los paquetes de React (lo más importante)```bash
# Check your current version
npm list react-server-dom-webpack
Descargar herramienta