Skip to content

Keycloak 26.6.4 corrige huit CVE, CERT-FR publie l'avis AVI-0815

Keycloak 26.6.4 du 26 juin patche huit CVE — dont CVE-2026-11800 (bypass JWT, 8.1) et CVE-2026-9800 (Policy Enforcer URI, 8.1). CERT-FR a publié l'avis AVI-0815 le 29 juin.

Publié le 5 min de lecture

Le CERT-FR a publié le 29 juin 2026 l'avis CERTFR-2026-AVI-0815 sur Keycloak, qui répercute la release 26.6.4 publiée par l'éditeur le 26 juin à 19:19 UTC. Huit CVE sont corrigées, dont deux notées CVSS 8.1 — l'authentication bypass par confusion d'algorithme JWT (CVE-2026-11800) et le contournement d'autorisation du Policy Enforcer (CVE-2026-9800). Versions affectées d'après l'avis CERT-FR : Keycloak 26.0.x antérieures à 26.0.10 et 26.6.x antérieures à 26.6.4.

Les huit CVE patchées par 26.6.4

D'après les notes de version 26.6.4 sur GitHub, chaque CVE pointe sur l'avis GHSA correspondant publié par le projet :

  • CVE-2026-11800Authentication bypass via JWT algorithm confusion (GHSA-gqj5-2xp5-3qmp). CVSS 8.1. Dans le flux JWT Authorization Grant, un attaquant disposant de credentials client valides peut forger des assertions qui contournent la vérification de signature et émettre des jetons d'accès au nom d'utilisateurs fédérés liés à un IdP externe. CWE-347.
  • CVE-2026-9800Policy Enforcer authorization bypass via incorrect URI comparison (GHSA-79qw-g39g-mfxc). CVSS 8.1. Un utilisateur authentifié peut contourner toutes les politiques d'autorisation (rôle, scope, UMA) en glissant le chemin de la page access-denied configurée dans l'URL — soit en segment de chemin, soit en paramètre de requête. CWE-1025.
  • CVE-2026-9099Group-admin escalation to realm-admin (GHSA-rmcj-82cr-27rx). CVSS 7.7. Un group-admin authentifié peut reparenter un groupe privilégié vers son propre périmètre via GroupResource.addChild(). Si les Fine-Grained Admin Permissions v2 sont activés, l'attaquant hérite des droits de gestion et de reset password sur les membres du groupe haute privilège — élévation jusqu'au compromis complet du realm.
  • CVE-2026-9083Information disclosure through arbitrary filesystem path probing (GHSA-7pm9-g8jh-3m74).
  • CVE-2026-9086XSS via case-insensitive URI validation bypass (GHSA-37j9-56gh-j2r7).
  • CVE-2026-9705Re-enable and take over disabled clients via registration access token (GHSA-q929-g23j-2rc7). Un registration access token permet de réactiver un client désactivé et d'en prendre le contrôle.
  • CVE-2026-9795Privilege escalation via improper scope mapping enforcement (GHSA-8hcx-p7m8-gc28).
  • CVE-2026-9799Unauthorized access via UMA permission ticket bypass (GHSA-gfv4-4vr2-rr4g).

Sept des huit CVE sont post-auth — un compte avec rôle limité (group-admin, registration access token, simple utilisateur authentifié sur une appli protégée par Policy Enforcer) est le minimum. La huitième (CVE-2026-11800) exige des credentials client valides, donc soit un client compromis, soit un environnement où la création de clients OAuth2 est ouverte.

Statut d'exploitation

Pas de PoC public référencé, pas d'exploitation en conditions réelles documentée par l'éditeur, le CERT-FR ou les CERT sectoriels au moment de la publication. Aucune de ces CVE n'est ajoutée au catalogue CISA KEV. Le score EPSS de CVE-2026-11800 est de 0,19 % et celui de CVE-2026-9800 de 0,30 % — bas, mais ce ne sont que des projections sur 30 jours et le profil Policy Enforcer bypass est suffisamment trivial à reproduire (un attaquant qui lit l'avis devine la payload) pour ne pas s'y fier.

Que faire

  1. Mettre à jour vers Keycloak 26.6.4 sur la branche 26.6.x, ou vers 26.0.10 pour les déploiements maintenus en LTS d'après l'avis CERT-FR. Les builds Red Hat (Red Hat build of Keycloak) suivent typiquement sous 48 à 72 h — vérifier auprès du portail Red Hat le bulletin RHSA correspondant.
  2. Auditer les comptes group-admin sur les realmsFine-Grained Admin Permissions v2 est activé. CVE-2026-9099 transforme tout group-admin en candidat à l'escalade vers realm-admin — pendant la fenêtre d'exposition, considérer les opérations reparent de groupes privilégiés comme suspectes par défaut.
  3. Inventorier les applications derrière Policy Enforcer Keycloak. CVE-2026-9800 transforme la page access-denied — généralement un détail de configuration — en cheat code d'autorisation. Si vous personnalisez cette page, son chemin est connu de tout utilisateur qui voit l'erreur ; vérifier les logs applicatifs des 30 derniers jours pour les requêtes contenant ce chemin en segment ou en paramètre.
  4. Révoquer et régénérer les registration access tokens longue durée. CVE-2026-9705 permet de réveiller un client désactivé et d'en prendre la main via ce jeton — si vous en avez en circulation sur des comptes de service, considérer-les comme compromis et tourner.
  5. Auditer les flux JWT Authorization Grant. Sur un déploiement Keycloak fédéré avec des IdP externes (typique sur les realms État–collectivités via FranceConnect+, ou sur un parc B2B), CVE-2026-11800 permet à un client compromis d'imiter n'importe quel utilisateur fédéré. Croiser les logs token-grant avec les patterns d'usage normaux des clients sensibles.

Contexte

Keycloak n'est pas un nouveau venu côté CVE : la release précédente, 26.6.3 du 4 juin, avait déjà corrigé 16 CVE d'un coup — dont une SSRF authentifiée (CVE-2026-4874) et une élévation de privilèges via fine-grained admin permissions (CVE-2026-9704). En quatre semaines, le projet a donc publié 24 CVE sur deux releases consécutives. Sur la même fenêtre, l'écosystème IAM open source a vu OpenAM Community Edition publier 17 CVE corrigées en 16.1.1 ; le fork ForgeRock retiré reste exposé aux legacy customers qui n'ont pas migré vers Ping.

Le motif récurrent dans cette vague Keycloak : les contrôles d'autorisation à granularité fine (Fine-Grained Admin Permissions v2, scope mapping, UMA, Policy Enforcer) sont la zone qui casse le plus. Plus la matrice de permissions s'enrichit, plus les chemins de contournement se multiplient — patron classique des plateformes IAM, jamais résolu par la documentation seule. L'avis CERT-FR AVI-0815 reste la référence à citer pour un opérateur en périmètre NIS2 qui doit justifier la fenêtre de patching.

Pour les équipes qui n'ont pas encore basculé sur la branche 26.6 — historiquement les déploiements État ou hospitaliers stables sur 26.0 LTS — la 26.0.10 listée dans l'avis CERT-FR est la voie de moindre friction : pas de saut de schéma, pas de migration realm export. Ne pas reporter sous prétexte que « 26.0.10 c'est juste un patch ».

Articles liés