pac4j - CVE-2026-82461

Date de publication :

Il s'agit d'une vulnérabilité dans le générateur d'autorisation Keycloak du module pac4j-oidc, au niveau de l'extraction des rôles de royaume et de client.

pac4j est un framework de sécurité pour applications Java. Il fournit l'authentification des utilisateurs, la récupération de leur profil et la gestion des autorisations au sein d'applications et de services web, via de nombreux protocoles dont OpenID Connect, SAML, CAS et OAuth. Il s'intègre à de nombreux frameworks tels que Spring Security, Play Framework, Vert.x ou Apache Shiro.

Lors de cette extraction, le module ne vérifie ni la signature du jeton d'accès, ni son émetteur, ni son audience, ni sa date d'expiration. Un attaquant peut ainsi forger un jeton d'accès arbitraire portant des rôles administratifs, à condition de le présenter avec un jeton d'identité (ID token) valide. Ce jeton d'identité valide peut provenir d'un compte légitime disposant de faibles privilèges.

Elle permet à un attaquant de contourner les contrôles d'autorisation des applications qui s'appuient sur la validation des rôles pac4j.

Informations

La faille est activement exploitée : Non

Un correctif existe : Oui

Une mesure de contournement existe : Non

Risques

Élévation de privilèges

Exploitation

La vulnérabilité exploitée est du type
CWE-347 : Improper Verification of Cryptographic Signature

Détails sur l'exploitation
•   Vecteur d'attaque : Réseau
•   Complexité de l'attaque : Faible
•   Privilèges nécessaires pour réaliser l'attaque : Authentification utilisateur simple
•   Interaction d'un utilisateur ayant accès au produit est-elle nécessaire : Non
•   L'exploitation de la faille permet d'obtenir des droits privilégiés : Oui

Preuve de concept
Actuellement, aucune preuve de concept n'est disponible en sources ouvertes.

Systèmes ou composants affectés

•   pac4j, dont le module pac4j-oidc, versions antérieures à 6.5.6, toutes branches confondues (4.x, 5.x et 6.x jusqu'à 6.5.5). 
Le correctif n'ayant été publié que sur la branche 6.x, les branches 4.x et 5.x, plus anciennes, restent vulnérables sans correctif dédié connu.

Solutions ou recommandations

•   pac4j (dont pac4j-oidc) branche 6.x : version 6.5.6 et supérieures.
•   pac4j branches 4.x et 5.x : aucun correctif dédié identifié à ce jour, montée vers la branche 6.x recommandée.