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-2026-90817 — PoC en Python para CVE-2026-90817, un RCE no autenticado en REDCap mediante enrutamiento de paso de encuestas e inyección de rutas de archivos, con un laboratorio Docker y objetivos protegidos por lista de permitidos. | Kitploit
Herramientas/GitHubGitHub/exdev994/cve-2026-90817
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónRed TeamingHerramienta de Acceso RemotoDesarrollo de PayloadsLabs y Práctica
GitHubexdev994/cve-2026-90817

CVE-2026-90817

PoC en Python para CVE-2026-90817, un RCE no autenticado en REDCap mediante enrutamiento de paso de encuestas e inyección de rutas de archivos, con un laboratorio Docker y objetivos protegidos por lista de permitidos.

hace 7h 25mAún no revisado
Ver Repositorio

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-2026-90817 — PoC de RCE no autenticado en REDCap (Solo uso autorizado)

SOLO USO AUTORIZADO. Usted es responsable de la autorización legal de cada objetivo. El uso no autorizado contra instancias REDCap de terceros es ilegal.

Resumen de la vulnerabilidad

CampoValor
CVECVE-2026-90817
ProductoVanderbilt University REDCap
CVSS9.8 Crítico
AutenticaciónNo autenticado (requiere un hash de encuesta pública válido)
AfectadosREDCap 13.3.0 y superiores
Corregido16.0.49 LTS, 17.3.10 LTS, 17.4.4 Standard Release
CWECWE-73 (Control externo del nombre de archivo o ruta), CWE-94 (Inyección de código)

Cadena de ataque:

  1. Obtener un hash de encuesta pública válido de una instancia REDCap.
  2. Manipular las solicitudes HTTP para alcanzar una ruta de controlador no prevista mediante el enrutamiento de paso de encuestas.
  3. Proporcionar un parámetro de ruta de archivo/flujo manipulado durante el procesamiento de Importación de Datos.
  4. Lograr la ejecución remota de código en el servidor REDCap.

Estructura del proyecto

root@kitploit:~
CVE-2026-90817/
├── poc_cve_2026_90817.py   # PoC (objetivo único, protegido por lista de permitidos)
├── docker-compose.yml       # Pila de laboratorio MySQL + PHP-Apache
├── redcap-init/
│   ├── database.php         # Configuración de BD de REDCap para el laboratorio
│   └── php.ini              # Configuración de PHP para el laboratorio
├── redcap-src/              # <-- extraiga el código fuente de REDCap aquí (usted lo proporciona)
├── targets.txt              # Objetivos autorizados: un host por línea
├── payload.txt              # Archivo de ejemplo para el modo de carga
├── requirements.txt         # Dependencias de Python
└── poc_results.txt          # Generado tras la ejecución del PoC

Requisitos previos

  • Docker y Docker Compose
  • Python 3.9+
  • Archivo zip del código fuente de REDCap (versión vulnerable, p. ej. 14.x o 15.x) del consorcio Vanderbilt REDCap

REDCap es software con licencia. Debe obtenerlo a través de canales oficiales para su propio laboratorio.

Configuración del laboratorio

1. Extraer el código fuente de REDCap

root@kitploit:~
mkdir -p redcap-src
# Extraiga el contenido de su redcap.zip en redcap-src/
# El directorio debe contener index.php, redcap_vX.X.X/, etc.

2. Iniciar el entorno de laboratorio

root@kitploit:~
docker compose up -d

Espere a que pase la verificación de estado de MySQL y luego abra:

root@kitploit:~
http://localhost:8080

Complete el asistente de instalación de REDCap usando estas configuraciones de base de datos (preconfiguradas en redcap-init/database.php):

ConfiguraciónValor
Hostdb
Base de datosredcap
Usuarioredcap
Contraseñaredcap123

3. Crear una encuesta pública

  1. Inicie sesión en REDCap como administrador.
  2. Cree un nuevo proyecto.
  3. Habilite "Use surveys in this project".
  4. Abra el enlace de la encuesta pública y copie el hash de la URL (parámetro s=).

Ejemplo de URL de encuesta:

root@kitploit:~
http://localhost:8080/surveys/?s=ABC123XYZ

Hash de la encuesta: ABC123XYZ

Ingeniería inversa (complete los marcadores de posición)

El aviso público no revela la ruta exacta del controlador ni el nombre del parámetro. Después de configurar su laboratorio, realice ingeniería inversa sobre redcap-src/ y complete las constantes TODO en poc_cve_2026_90817.py:

root@kitploit:~
VULNERABLE_ROUTE = "TODO_CONTROLLER_ROUTE"   # ruta del controlador mediante el paso de encuestas
FILE_PATH_PARAM = "TODO_FILE_PATH_PARAM"     # nombre del parámetro de ruta de archivo/flujo
WEBROOT_PATH = "/var/www/html/redcap/"       # raíz web dentro del contenedor
UPLOADER_NAME = "x.php"                      # nombre del archivo de carga PHP

Guía de ingeniería inversa

Busque el enrutamiento de paso de encuestas:

root@kitploit:~
grep -rn "passthrough\|survey.*route\|Routes::" redcap-src/ --include="*.php" | head -50
grep -rn "Controller" redcap-src/ --include="*.php" | grep -i "import\|survey" | head -50

Busque el manejo de ruta de archivo/flujo en la Importación de Datos:

root@kitploit:~
grep -rn "file_path\|file-path\|stream\|DataImport\|data_import" redcap-src/ --include="*.php" | head -50
grep -rn "fopen\|file_get_contents\|include\|require" redcap-src/ --include="*.php" | grep -i "import" | head -50

Establezca STAGE1_SUCCESS_MARKER en una cadena presente en una respuesta exitosa de la etapa 1 (opcional pero recomendado).

Instalar dependencias de Python

root@kitploit:~
pip install -r requirements.txt

Ejecutar el PoC

El script rechaza objetivos que no sean hosts de laboratorio (localhost, 127.0.0.1, ::1, *.local, *.test, *.localhost) ni estén listados en targets.txt.

Hash de encuesta

CVE-2026-90817 es no autenticado — no se necesita inicio de sesión. La única precondición es un hash de encuesta pública válido (de la URL de encuesta ?s=HASH).

La herramienta puede descubrir automáticamente el hash de encuesta mediante el scraping de páginas públicas del objetivo (mejor esfuerzo). Comprueba los endpoints comunes de REDCap (/, /redcap/, /index.php, /surveys/) en busca de enlaces /surveys/?s=HASH. Esto solo funciona si el objetivo expone públicamente enlaces de encuestas (mal configurado). Para instancias REDCap correctamente configuradas, proporcione el hash manualmente mediante --hash.

  • Modo de objetivo único: --hash es opcional (se descubre automáticamente si se omite)
  • Modo por lotes: descubrimiento automático por objetivo; los objetivos que no exponen enlaces de encuestas se omiten

Objetivos autorizados (no laboratorio)

Para objetivos que no sean de laboratorio, cree targets.txt con un host por línea (FQDN o IP). Usted es responsable de la autorización legal de cada host listado.

root@kitploit:~
# targets.txt
redcap.client.example.com
10.0.0.5
192.168.1.100

Ejemplos

Objetivo de laboratorio con hash explícito:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --hash ABC123XYZ \
  --mode both \
  --out poc_results.txt

Objetivo de laboratorio con hash descubierto automáticamente:

root@kitploit:~
python poc_cve_2026_90817.py \
  --target http://localhost:8080 \
  --mode both \
  --out poc_results.txt

Modo por lotes (iterar sobre todos los hosts en targets.txt)

Añada --batch para explotar automáticamente cada host listado en targets.txt. La herramienta descubre automáticamente el hash de encuesta por objetivo mediante el scraping de páginas públicas. La herramienta imprime todos los objetivos y solicita confirmación antes de comenzar (use --yes para omitir el aviso en scripts).

root@kitploit:~
python poc_cve_2026_90817.py \
  --batch \
  --mode both \
  --out poc_results.txt

El puerto se hereda de --target (por defecto 8080). Para usar un puerto diferente, establezca --target http://placeholder:443/ antes de --batch.

El resultado de cada objetivo se añade al archivo de salida. Al final se imprime un resumen: N success, M failed, T total.

Argumentos

ArgumentoPredeterminadoDescripción
--targethttp://localhost:8080URL base del objetivo
--hash(opcional)Hash de encuesta pública. Si se omite, se descubre automáticamente mediante el scraping de páginas públicas (mejor esfuerzo).
--allowlisttargets.txtArchivo de objetivos, un host por línea
--batchdesactivadoIterar sobre todos los hosts del archivo de objetivos y explotar cada uno
--yesdesactivadoOmitir el aviso de confirmación del modo por lotes
--modebothid, upload o both
--outpoc_results.txtArchivo de registro de resultados
--timeout30Tiempo de espera HTTP (segundos)
--upload-localpayload.txtArchivo local a cargar
--upload-remoteuploaded_payload.txtNombre de archivo remoto bajo la raíz web
--skip-placeholder-checkdesactivadoEjecución en seco del flujo HTTP sin las constantes TODO completadas

Nota: el descubrimiento automático solo funciona en objetivos que exponen públicamente enlaces de encuestas. Para la mayoría de las instancias REDCap, proporcione --hash manualmente.

Salida esperada

En caso de éxito, stdout muestra:

root@kitploit:~
[0xNuts] CVE-2026-90817 PoC -- AUTHORIZED USE ONLY
[0xNuts] You are responsible for legal authorization of every target.
[0xNuts] Using survey hash: ABC123XYZ
[0xNuts] Stage 1: route manipulation -> ...
[0xNuts] Stage 2: file-path injection -> ...
[0xNuts] id output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
[0xNuts] uploaded to /var/www/html/redcap/uploaded_payload.txt
[0xNuts] Result logged to poc_results.txt

Los resultados se añaden a poc_results.txt:

root@kitploit:~
[2026-09-21T03:20:00Z]
target=http://localhost:8080/
survey_hash=ABC123XYZ
status=success
id_output=uid=33(www-data) gid=33(www-data) groups=33(www-data)
uploaded_files=/var/www/html/redcap/uploaded_payload.txt
notes=mode=both
------------------------------------------------------------

Mitigación

Actualice a REDCap 16.0.49 LTS, 17.3.10 LTS o 17.4.4 Standard Release (según corresponda).

Endurecimiento adicional:

  • Restrinja la exposición pública de encuestas donde no sea necesario.
  • Supervise las solicitudes HTTP dirigidas a rutas de encuestas y endpoints de importación de datos.
  • Revise la validación del lado del servidor de los parámetros de ruta de archivo/flujo en los manejadores de importación.

Referencias

  • CVE-2026-90817 (CVE.org)
  • Securifera Advisories
  • Descubridor: Ryan Wincey (@rwincey, Securifera)
Descargar herramienta