
Résumé
Quoi ?
Une faille critique dans le flux de réinitialisation des identifiants (reset-credentials) de Keycloak permet à un attaquant non authentifié de prendre le contrôle de n’importe quel compte utilisateur, y compris les comptes administrateurs.
Comment ?
En contournant l’étape de vérification par e-mail normalement requise pour valider une demande de réinitialisation de mot de passe.
Produits concernés :
Red Hat Build of Keycloak (RHBK) : versions 26.4.x < 26.4.15 et 26.6.x < 26.6.6.
Mais aussi et surtout (manquant dans l'enregistrement CVE) Keycloak open-source : versions 26.0.0 à 26.7.1 (corrigé en 26.7.2).
Pourquoi Keycloak open-source n’apparaît pas dans le CVE ?
Parce que le CVE a été enregistré par Red Hat, et non par l’équipe Keycloak. Le CVE mentionne donc uniquement les produits Red Hat, même si la vulnérabilité touche aussi le projet open-source.
Conséquence majeure : Les outils de détection (comme Trivy, Grype, ou les scanners de vulnérabilités) ne détectent pas automatiquement la vulnérabilité sur les instances Keycloak non-Red Hat, car le CVE est associé à Red Hat Build of Keycloak et non à la version communautaire de Keycloak.
La vulnérabilité : CVE-2026-18963 en détail
Description technique
La vulnérabilité se situe dans le flux de réinitialisation des identifiants (reset-credentials flow) du composant keycloak-services, qui est le moteur central de Keycloak pour la gestion des authentifications.
Le mécanisme d'attaque est le suivant :
- Un attaquant envoie une requête spécialement conçue au point de terminaison de réinitialisation des identifiants ;
- Le code de Keycloak ne vérifie pas correctement l’état et saute l’étape de vérification du jeton e-mail.
En conséquence, l’attaquant accède directement à la page de modification du mot de passe sans avoir besoin du lien e-mail. Il peut alors réinitialiser le mot de passe de n’importe quel utilisateur dont il connait l'identifiant (par exemple son adresse e-mail).
L'impact est clair : un attaquant non authentifié peut prendre le contrôle de n'importe quel compte utilisateur et potentiellement élever ses privilèges vers l'administrateur en ciblant un compte d'administration.
Versions affectées
Les versions affectées par la vulnérabilité dépendent de la branche :
- ≤ 25.x : non affectées ;
- 26.0-26.3 : affectées et aucun correctif prévu ;
- 26.4 : affectée, la version 26.4.15 corrige la vulnérabilité pour les utilisateurs RHBK uniquement ;
- 26.5 : affectée et aucun correctif prévu ;
- 26.6 : affectée, la version 26.6.6 corrige la vulnérabilité pour les utilisateurs RHBK uniquement ;
- 26.7 : affectée, la version 26.7.2 corrige la vulnérabilité.
Si vous ne pouvez pas mettre à jour immédiatement, vous pouvez :
Désactiver la fonctionnalité « Mot de passe oublié » :
Aller dans la console d’administration Keycloak puis dans Realm Settings → Login → Forgot password → Off. Répéter l'opération pour tous les realms.
Cette mesure a un impact sur l'expérience utilisateur : les utilisateurs ne pourront plus réinitialiser leur mot de passe via le flux standard.
Utiliser un flux de réinitialisation personnalisé :
Si vous avez un flux personnalisé (custom reset-credentials flow) qui ne contient pas reset-credential-email, vous n’êtes en principe pas vulnérable.
Ajouter des authentifiants supplémentaires :
Configurer un authentificateur requis (OTP, WebAuthn) après l’étape e-mail dans le flux de réinitialisation. Cela ne corrige pas la vulnérabilité, mais limite l’impact (l’attaquant ne pourra pas finaliser la réinitialisation sans le 2ème facteur).
Preuve de concept (PoC) et exploitation
La complexité de l'attaque et les prérequis à son exploitation sont signalés comme faibles. Aucune interaction de l'utilisateur n'est nécessaire du moment qu'un attaquant dispose de son identifiant.
Au jour de l'écriture de ces lignes (24/08/2026), aucun code d'exploitation n'a été rendu public. Cependant, certaines personnes ont pu reproduire la vulnérabilité et confirmer son exploitabilité en situation réelle.
Compte tenu de la large diffusion de Keycloak, notamment exposée sur Internet, il est attendu que cette vulnérabilité attire l'attention des acteurs malveillants. Ainsi, la mise à disposition d'un code d'exploitation suivi d'une exploitation au large sont probables.
Pistes de détection d'exploitation
D’après les discussions sur GitHub, une signature d’attaque possible est :
- Un événement UPDATE_PASSWORD sans événement précédent SEND_RESET_PASSWORD dans les 24 dernières heures ;
- Exemple de script de détection : kyos-public/keycloak-cve-2026-18963-hunt.
La dynamique Red Hat build et community
Keycloak est un projet open-source de gestion des identités et des accès (IAM), développé à l’origine par Red Hat et ensuite donné à la communauté en 2016. Depuis, deux versions coexistent :
- Keycloak open-source (communauté) : maintenu par une communauté de contributeurs ;
- Red Hat Build of Keycloak (RHBK) : version commerciale et supportée par Red Hat, basée sur le code open-source.
Cette distinction est importante car deux mainteneurs coexistent pour un même produit. De plus, Red Hat est un CNA (CVE Numbering Authority), ce qui signifie que l'entreprise peut enregistrer des CVEs pour ses produits. Quand une vulnérabilité est découverte dans le code partagé entre Keycloak open-source et RHBK, Red Hat peut choisir d’enregistrer le CVE sous son propre nom, même si la vulnérabilité touche aussi la version communautaire.
Ainsi, sauf enrichissement de l'enregistrement CVE, c'est RedHat qui décide quelles sont les informations d'autorité et donc les produits affectés tels qu'ils sont rapportés. Si RedHat omet de mentionner la version communautaire, comme c'est le cas ici, les outils de sécurité dépendant du programme CVE peuvent ne pas collecter cette information.
Sans faire de procès d'intention à RedHat, cette omission questionne les liens entre RedHat et la communauté Keycloak ainsi que les processus en place pour permettre aux utilisateurs de la version communautaire de bénéficier d'un niveau de sécurité équivalent à la version commerciale.
Car la conséquence est directe : les outils comme Trivy, Grype, ou les scanners de vulnérabilités ne détectent pas la CVE-2026-18963 sur les images Keycloak open-source. Les éditeurs réagiront certainement mais le temps déjà perdu ne peut pas être récupéré.
Il existe par ailleurs un avis de sécurité sur Github en ce qui concerne la version communautaire mais, étant marqué comme non revu, il a de fortes chances de ne pas être pris en compte.
Ce qu’il faut retenir
La CVE-2026-18963 est une faille de sévérité critique qu'il convient de traiter rapidement dans votre système d'information en anticipant une potentielle exploitation à large spectre. Elle permet une prise de contrôle de compte sans authentification.
Elle touche à la fois Red Hat Build of Keycloak et Keycloak open-source, mais le CVE ne mentionne que la version Red Hat.
Les scanners ne détectent pas tous automatiquement la vulnérabilité sur Keycloak open-source, ce qui crée un faux sentiment de sécurité.
Mettez à jour dès que possible :
- RHBK → 26.4.15 ou 26.6.6 ;
- Keycloak open-source → 26.7.2+.
Si vous ne pouvez pas mettre à jour : désactivez la fonctionnalité « Mot de passe oublié » ou utilisez un flux personnalisé sécurisé.