Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2021-20323 — Proof-of-Concept und Analyse für CVE-2021-20323, eine reflektierte XSS-Schwachstelle im clients-registrations-Endpunkt von Keycloak, mit Ausnutzungsbedingungen, Abhilfemaßnahmen und Links zu offiziellen Sicherheitshinweisen. | Kitploit
Tools/GitHubGitHub/ndmalc/cve-2021-20323
SchwachstellenanalyseWebanwendungs-ExploitationWebsicherheitPenetrationstestsPapers & ForschungLernen & Bildung
GitHubndmalc/cve-2021-20323

CVE-2021-20323

Proof-of-Concept und Analyse für CVE-2021-20323, eine reflektierte XSS-Schwachstelle im clients-registrations-Endpunkt von Keycloak, mit Ausnutzungsbedingungen, Abhilfemaßnahmen und Links zu offiziellen Sicherheitshinweisen.

Repository anzeigen
1321vor 3 JahrenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

CVE-2021-20323

Beschreibung

Keycloak vor Version 18.0.0 und nach 10.0.0 enthält eine reflektierte XSS im clients-registrations-Endpunkt. Der Fehler wird ausgelöst, indem per POST eine JSON-Struktur mit einem Schlüssel als Parameter-Namen übermittelt wird, der vom Endpunkt nicht unterstützt wird. Die Antwort spiegelt den JSON-Schlüssel in einer Fehlermeldung wider, wobei der Header als Content-Type: text/html gesetzt ist. Bei Ausführung in einem Browser wird der HTML-Code aus dem JSON-Schlüssel interpretiert, sodass JavaScript-Code ausgelöst werden kann. Es ist keine Authentifizierung erforderlich, und der Fehler wirkt sich auf alle verfügbaren Realms aus.

Derzeit gibt es aufgrund der Anforderung des Fehlers, dass Content-Type: application/json erforderlich ist und der Fehler per POST übermittelt wird, keinen gängigen Weg zur Ausnutzung, der eine Auswirkung auf den Benutzer hat.

Dieses Repository bietet einen POC für CVE-2021-20323 sowie Empfehlungen zur Behebung/Minderung.

Wie man den Fehler auslöst

Der Fehler ist sehr einfach auszulösen.

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

Es ist auch möglich, ihn mit dem -Anbieter auszulösen.

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

Hinweis: Bei älteren Keycloak-Versionen (die mit Wildfly statt Quarkus laufen) verwendet der Basispfad /auth/realms/* anstelle von /realms/*

Ist der Fehler ausnutzbar?

Wie wir in mehreren Quellen hier oder hier sehen können, ist es im Allgemeinen nicht möglich, eine reflektierte POST-XSS auszunutzen, die Content-Type: application/json erfordert, um angreifbar zu sein. Der einzige Fall, in dem dies passieren könnte, ist, wenn die CORS-Richtlinie manuell von der Standardeinstellung gelockert wurde, um Cross-Origin-Anfragen zu erlauben. Dieses Szenario ist nur in sehr spezifischen Anwendungsfällen vernünftig anzunehmen, die vom Anwendungsbesitzer aus funktionalen Gründen eingerichtet wurden. Um in einem solchen Fall ausnutzbar zu sein, müsste der Angreifer entweder die Kontrolle über die in der CORS-Richtlinie erlaubte Domain/Server haben oder eine XSS auf dieser zweiten Domain haben, die als Relay verwendet werden könnte.

Bei CVE-2021-20323 akzeptiert Keycloak keine POST-Anfragen mit Content-Type von multipart/form-data oder application/x-www-form-urlencoded, den einzigen beiden Typen, die in einem einfachen form-Submit erlaubt sind. Dies macht CVE-2021-20323 nur dann ausnutzbar, wenn CORS es explizit erlaubt.

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"}

Wie behebt man den Fehler?

Aktualisieren Sie auf Keycloak 18.0.0 oder höher.

Keine bekannte behobene Version für RedHat Single Sign-On, eine von RedHat neu verpackte Version von Keycloak.

Alternativen zur Risikominderung

  1. Richten Sie einen Reverse-Proxy ein, um jeden Aufruf an clients-registrations zu verbieten.
  2. Konfigurieren Sie Keycloak mit ACL, um den Zugriff auf clients-registrations zu beschränken, ähnlich wie in diesem Keycloak-Blogbeitrag.

Links

  • 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

Lizenz

MIT License © [ndmalc]

Tool herunterladen