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 — Análisis basado en CodeQL de la vulnerabilidad de contaminación de prototipos CVE-2025-55182 en React Server Components, con POC de exploit y consultas de detección estática para recorrido de propiedades inseguro. | Kitploit
Herramientas/GitHubGitHub/klassiker/cve-2025-55182
Análisis EstáticoAnálisis de VulnerabilidadesAnálisis de CódigoSeguridad WebPapers e InvestigaciónAprendizaje y Educación
GitHubklassiker/cve-2025-55182

CVE-2025-55182

Análisis basado en CodeQL de la vulnerabilidad de contaminación de prototipos CVE-2025-55182 en React Server Components, con POC de exploit y consultas de detección estática para recorrido de propiedades inseguro.

Ver Repositorio
hace 8 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

Aplicación Vulnerable

Construir y ejecutar:

root@kitploit:~
docker compose build
docker compose run --rm --entrypoint 'npm install' node
docker compose run --rm --entrypoint 'npm run build' node
docker compose up

POC (de https://github.com/msanft/CVE-2025-55182):

root@kitploit:~
node poc.js

Experimentación con unbundled:

root@kitploit:~
yarn --immutable

node --conditions react-server app.js

CodeQL

Clonar facebook/react y crear unbundled:

root@kitploit:~
yarn --immutable

yarn cross-env RELEASE_CHANNEL=experimental node ./scripts/rollup/build.js react-server-dom-webpack/ --type=NODE_DEV

cp ./build/node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack-server.node.unbundled.development.js \
    codeql/${version}/

Preparar CodeQL:

root@kitploit:~
codeql database create db -l javascript -s codeql

cd queries && codeql pack install

codeql query run ./queries/PrototypeTraversal.ql -d db

POR HACER

  • Agregar una consulta para encontrar Promise.resolve(userData)
    • debería encontrar todas las funciones asíncronas que se resuelven con un objeto definido por el usuario
    • esta es la ubicación inmediata de los problemas de ejecución de código
  • Agregar una consulta para encontrar await non-native-promise
    • debería encontrar todos los 'await' de funciones que no devuelven una promesa nativa
    • un llamador podría usar erróneamente await en un método que (a veces) devuelve datos sin procesar

Resultados

Detectó el uso corregido en getOutlinedModel (añadió hasOwnProperty.call) y el eliminado en createModelResolver (ahora fulfillReference).

No sé por qué el primero y el segundo apuntan a la misma ubicación, mientras que el extraído en vuln.js no.

Ejemplos

En codeql/tests.js existen estas tres variantes:

root@kitploit:~
var value = {};
for (let i = 0; i < path.length; i++) {
  value = value[path[i]] // VarAccess
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c = value[path[i]] // VarDecl
  value = c
}

var value = {};
for (let i = 0; i < path.length; i++) {
  let c
  c = value[path[i]] // use VarRef
  value = c
}

Referencia: https://codeql.github.com/docs/codeql-language-guides/abstract-syntax-tree-classes-for-working-with-javascript-and-typescript-programs/

Descargar herramienta
filenamesourcesink
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Recorrido inseguro de prototipo: La variable 'parentObject' se actualiza con su propia propiedad dentro de un bucle.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsparentObject[reference[key]]parentObject[reference[key]]Recorrido inseguro de prototipo: La variable 'parentObject' se actualiza con su propia propiedad dentro de un bucle.
./19.2.0/react-server-dom-webpack-server.node.unbundled.development.jsvalue[path[i]]value[path[i]]Recorrido inseguro de prototipo: La variable 'value' se actualiza con su propia propiedad dentro de un bucle.
./tests.jsvalue[path[i]]cRecorrido inseguro de prototipo: La variable 'value' se actualiza con su propia propiedad dentro de un bucle.
./tests.jsvalue[path[i]]cRecorrido inseguro de prototipo: La variable 'value' se actualiza con su propia propiedad dentro de un bucle.
./tests.jsvalue[path[i]]value[path[i]]Recorrido inseguro de prototipo: La variable 'value' se actualiza con su propia propiedad dentro de un bucle.
./vuln.jsparentObject[reference[key]]parentObject[reference[key]]Recorrido inseguro de prototipo: La variable 'parentObject' se actualiza con su propia propiedad dentro de un bucle.
./vuln.jsvalue[path[i]]value[path[i]]Recorrido inseguro de prototipo: La variable 'value' se actualiza con su propia propiedad dentro de un bucle.