Share
## https://sploitus.com/exploit?id=C0CD9459-496B-58A3-B98B-B3C9696DC362
# R2SHELL

> [!WARNING]
> Este proyecto es **SOLO PARA PROPÓSITOS EDUCATIVOS** y debe usarse únicamente en entornos controlados. En este proyecto limitamos el uso del exploit para las redes internas del entorno virtualizado de Docker y red local.

## Descripción

CVE-2025-55182 es una vulnerabilidad crítica de **Remote Code Execution (RCE)** en React Server Components que afecta a:

- `react-server-dom-parcel` (19.0, 19.1.0, 19.1.1, 19.2.0)
- `react-server-dom-webpack` (19.0, 19.1.0, 19.1.1, 19.2.0)
- `react-server-dom-turbopack` (19.0, 19.1.0, 19.1.1, 19.2.0)
- **Next.js** 15.x, 16.x y canary releases 14.3.0+

**CVSS Score**: 10.0/10 (Crítico)

### Requisitos

- Docker & Docker Compose
- Python 3.11+ (solo si ejecutas fuera de Docker)

### 1. Levantar el entorno

```bash
docker-compose up -d --build
```

### 2. Verificar que la app esté corriendo

Abre tu navegador en [http://localhost:3000](http://localhost:3000)

### 3. Ejecutar el exploit

#### Verificar vulnerabilidad
```bash
docker-compose run --rm exploit -t "http://nextjs-vulnerable:3000"
```

#### Ejecutar comandos en el payload
```bash
# Listar archivos
docker-compose run --rm exploit -t "http://nextjs-vulnerable:3000" -c "ls -la"
```

### 4. Ver resultados

La salida del comando se ejecuta en el servidor. Para ver los resultados:

```bash
docker logs nextjs-vulnerable --follow
```

Y deberías ver en la consola de la aplicación web vulnerada un output en el servidor.

Los reportes también se guardan en `./reportes/`

## Cómo Funciona

La vulnerabilidad explota una **server-side prototype pollution** en React Server Components:

1. El payload utiliza referencias especiales (`$@0`, `$1:__proto__:then`)
2. Poluciona el prototipo de objetos JavaScript
3. Accede a `Array.constructor.constructor` → `Function()`
4. Ejecuta código arbitrario usando `process.mainModule.require('child_process').execSync()`

Te recomiendo leer estos artículos de Datadog y Wiz.io que explican a profundidad y detalle cómo funciona el payload.

- https://www.wiz.io/blog/nextjs-cve-2025-55182-react2shell-deep-dive
- https://securitylabs.datadoghq.com/articles/cve-2025-55182-react2shell-remote-code-execution-react-server-components/