Laboratorio basado en Docker que reproduce CVE-2025-55182 (React2Shell), un RCE no autenticado en React Server Components Flight Protocol, con exploit PoC y comparación parcheada.
CVE-2025-55182 (React2Shell) es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) No Autenticada con CVSS 10.0 en el Protocolo Flight de los Componentes de Servidor de React (RSC), que afecta a los paquetes react-server-dom-parcel, react-server-dom-turbopack, react-server-dom-webpack.
git clone https://github.com/abhaybansal16/cve-2025-55182-lab
cd cve-2025-55182-lab
docker compose build
docker compose up -d
docker ps
docker compose down
| Paquete | Versiones vulnerables |
|---|---|
| React (react-server-dom-webpack/turbopack/parcel) | 19.0.0, 19.1.0, 19.1.1, 19.2.0 |
| NextJS | 14.3.0-canary.77+, 15.0.0-15.5.6, 16.0.0-16.0.6 |
Este laboratorio demuestra la vulnerabilidad utilizando NextJS 15.5.6 / React 19.1.0 como el par vulnerable.
pip install requests
python3 exploit-poc.py http://localhost:3000
python3 exploit-poc.py http://localhost:3001
Status: 500
Output: root:x:0:0:root:/root:/bin/sh\nbin:x:1:1:bin:/bin:/sbin/nologin\ndaemon:x:2:2:daemon:/sbin:/sbin/nologin\nlp:x:4:7:lp:/var/spool/lpd:/sbin/nologin\nsync:x:5:0:sync:/sbin:/bin/sync\nshutdown:x:6:0:shutdown:/sbin:/sbin/shutdown\nhalt:x:7:0:halt:/sbin:/sbin/halt\nmail:x:8:12:mail:/var/mail:/sbin/nologin\nnews:x:9:13:news:/usr/lib/news:/sbin/nologin\nuucp:x:10:14:uucp:/var/spool/uucppublic:/sbin/nologin\ncron:x:16:16:cron:/var/spool/cron:/sbin/nologin\nftp:x:21:21::/var/lib/ftp:/sbin/nologin\nsshd:x:22:22:sshd:/dev/null:/sbin/nologin\ngames:x:35:35:games:/usr/games:/sbin/nologin\nntp:x:123:123:NTP:/var/empty:/sbin/nologin\nguest:x:405:100:guest:/dev/null:/sbin/nologin\nnobody:x:65534:65534:nobody:/:/sbin/nologin\nnode:x:1000:1000::/home/node:/bin/sh
Status: 404
Raw: Server action not found.
docker exec react2shell-vulnerable cat /app/package.json | grep -E '"next"|"react"'
También puedes usar la extensión wappalyzer para verificar la versión en ejecución de react y next en la aplicación desde el navegador.
python3 exploit-poc.py <target>
404 Server Action Not Found - ParcheadoActualizar a las versiones parcheadas
npm install [email protected] # for 13.3.x, 13.4.x, 13.5.x, 14.x
npm install [email protected] # for 15.0.x
npm install [email protected] # for 15.1.x
npm install [email protected] # for 15.2.x
npm install [email protected] # for 15.3.x
npm install [email protected] # for 15.4.x
npm install [email protected] # for 15.5.x
npm install [email protected] # for 16.0.x
npm install [email protected] # for 16.1.x
npm install [email protected] // for 15.x canary releases
npm install [email protected] // for 16.x canary releases
15.0.8, 15.1.12, 15.2.9, 15.3.9, 15.4.10, 15.5.10, 15.6.0-canary.61, 16.0.11, 16.1.5
Si estás en la versión 13.3 o posterior de Next.js 13 (13.3.x, 13.4.x o 13.5.x), actualiza a la versión 14.2.35. Si estás en [email protected] o una versión canary posterior, degrada a la última versión estable 14.x:
npm install next@14
Si estás utilizando las APIs RSC inestables de React Router, deberías actualizar las siguientes dependencias de package.json si existen:
npm install react@latest
npm install react-dom@latest
npm install react-server-dom-parcel@latest
npm install react-server-dom-webpack@latest
npm install @vitejs/plugin-rsc@latest
npm install dentro de la carpeta de la aplicación primero, luego reconstruye."CredsStore": "" en ~/.docker/config.json.docker compose up -d primero.