
Preuve de concept d'exploitation pour CVE-2026-29000, un contournement d'authentification dans pac4j-jwt via un JWT non signé encapsulé dans JWE, permettant une élévation de privilèges.
Cet outil est destiné uniquement à des fins de tests de sécurité éthiques et éducatifs. Je ne soutiens et ne soutiendrai en aucun cas les actes malveillants, sous quelque forme que ce soit. Utilisation à vos propres risques.
CVE-2026-29000 est une vulnérabilité critique (CVSS 10.0) dans la bibliothèque pac4j-jwt. Elle provient d'une logique de validation incorrecte dans JwtAuthenticator lors du traitement de jetons imbriqués (chiffrés).
La faille existe car, bien que pac4j déchiffre correctement un jeton JWE (JSON Web Encryption) à l'aide de la clé du serveur, il ne parvient pas à imposer la vérification de la signature sur le JWT interne. Cela permet à un attaquant d'envelopper un JWT non signé (en utilisant {"alg": "none"}) dans un conteneur JWE valide. Le serveur déchiffre le JWE, fait confiance à la charge utile interne et accorde l'accès.
pac4j antérieures à 4.5.9, 5.7.9 et 6.3.3.ROLE_ADMIN).Le script fourni, CVE-2026-29000.py, automatise les étapes suivantes :
/api/auth/jwks.alg: none et des revendications administratives.Assurez-vous que les bibliothèques Python requises sont installées :
pip install requests jwcrypto
python3 CVE-2026-29000.py <TARGET_URL>
Exemple :
python3 CVE-2026-29000.py http://vulnerable-app.local:8080
Pour atténuer cette vulnérabilité, prenez les mesures suivantes :
pac4j-jwt vers la version 4.5.9, 5.7.9 ou 6.3.3 (ou supérieure) immédiatement.JwtAuthenticator exige explicitement une signature valide et n'autorise pas l'algorithme none.Créé par : Cipher1x1