Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2021-20323 — Proof-of-concept e analisi per CVE-2021-20323, una vulnerabilità XSS riflessa nell'endpoint clients-registrations di Keycloak, con condizioni di sfruttamento, raccomandazioni di mitigazione e link agli advisory ufficiali. | Kitploit
Strumenti/GitHubGitHub/ndmalc/cve-2021-20323
Analisi delle VulnerabilitàSfruttamento di Applicazioni WebSicurezza WebPenetration TestingPaper e RicercaApprendimento e Formazione
GitHubndmalc/cve-2021-20323

CVE-2021-20323

Proof-of-concept e analisi per CVE-2021-20323, una vulnerabilità XSS riflessa nell'endpoint clients-registrations di Keycloak, con condizioni di sfruttamento, raccomandazioni di mitigazione e link agli advisory ufficiali.

Vedi Repository
1323 anni 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-2021-20323

Descrizione

Keycloak prima della versione 18.0.0 e dopo la 10.0.0 contiene una XSS riflessa sull'endpoint clients-registrations. Il bug viene attivato fornendo, tramite POST, una struttura JSON con una chiave come nome del parametro che non è supportata dall'endpoint. La risposta riflette la chiave JSON in un messaggio di errore e con header impostato come Content-Type: text/html. Se eseguito in un browser, il codice HTML dalla chiave JSON viene interpretato, consentendo di eseguire codice JavaScript. Non è richiesta autenticazione e il bug colpisce tutti i realm disponibili.

Attualmente, poiché il bug richiede Content-Type: application/json e viene inviato tramite POST, non esiste un vettore comune per sfruttarlo che abbia un impatto sull'utente.

Questo repository fornisce un POC per CVE-2021-20323 e raccomandazioni per la correzione/attenuazione.

Come attivare il bug

Il bug è molto facile da attivare.

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/json" -d "{\"\":1}"

È anche possibile attivarlo con il provider openid-connect.

root@kitploit:~
curl -v -X POST {BaseURL}/realms/master/clients-registrations/openid-connect -H "Content-type: application/json" -d "{\"\":1}"

Nota: Nelle versioni più vecchie di Keycloak (quelle in esecuzione con wildfly invece di quarkus) il percorso di base usa /auth/realms/* invece di /realms/*

Il bug è sfruttabile?

Come possiamo vedere da diverse fonti qui o qui, non è comunemente possibile sfruttare una XSS POST riflessa che richiede Content-Type: application/json per essere vulnerabile. L'unico caso in cui potrebbe accadere è se la policy CORS fosse stata manualmente allentata rispetto al default per consentire richieste cross-origin. Questo scenario è ragionevole solo in casi d'uso molto specifici, creati per motivi funzionali dal proprietario dell'applicazione. Per essere sfruttabile in tal caso, l'attaccante dovrebbe avere il controllo del dominio/server consentito nella policy CORS o avere una XSS su questo secondo dominio che potrebbe essere usato come relay.

Con CVE-2021-20323, Keycloak non accetta POST con Content-Type di multipart/form-data o application/x-www-form-urlencoded, che sono gli unici due tipi consentiti in un normale invio di form. Questo rende CVE-2021-20323 sfruttabile solo se CORS lo consente esplicitamente.

root@kitploit:~
# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: multipart/form-data" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

# curl -X POST {BaseURL}/realms/master/clients-registrations/default -H "Content-type: application/x-www-form-urlencoded" -d "{\"\":1}"
{"error":"RESTEASY003065: Cannot consume content type"}

Come risolvere?

Aggiornare a Keycloak 18.0.0 o successivo.

Nessuna versione corretta nota per RedHat Single Sign-On, che è una versione ricompilata di Keycloak da RedHat.

Alternative di mitigazione

  1. Implementare un proxy inverso per vietare qualsiasi chiamata a clients-registrations
  2. Configurare Keycloak con ACL per limitare l'accesso a clients-registrations, in modo simile a questo post sul blog di Keycloak

Collegamenti

  • https://github.com/keycloak/keycloak/security/advisories/GHSA-m98g-63qj-fp8j
  • https://nvd.nist.gov/vuln/detail/CVE-2021-20323
  • https://bugzilla.redhat.com/show_bug.cgi?id=2013577
  • https://access.redhat.com/security/cve/CVE-2021-20323
  • https://github.com/keycloak/keycloak/commit/3aa3db16eac9b9ed8c5335ac86f5f50e0c68662d
  • https://security.stackexchange.com/questions/263301/reflected-xss-found-in-web-application-via-post-request-with-json-body-is-this
  • https://www.keycloak.org/2021/12/cve

Licenza

Licenza MIT © [ndmalc]

Scarica lo strumento