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
CVE-2026-29000-PoC — CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) JwtAuthenticator contournement d'authentification PoC | Kitploit
Outils/GitHubGitHub/dua2z3rr/cve-2026-29000-poc
Génération de PayloadsAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCTFTests d'IntrusionAuthentificationApprentissage et Éducation
GitHubdua2z3rr/cve-2026-29000-poc

CVE-2026-29000-PoC

CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) JwtAuthenticator contournement d'authentification PoC

Voir le dépôt
12il y a 17 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-29000 — Preuve de concept de contournement d'authentification du JwtAuthenticator de pac4j-jwt

Une preuve de concept pour CVE-2026-29000, un contournement d'authentification dans le composant JwtAuthenticator de pac4j-jwt (CVSS 10.0, Critique).

Le script forge un jeton qui usurpe l'identité de n'importe quel utilisateur avec n'importe quel rôle — sans connaître un seul secret — tant que la cible expose sa clé publique RSA.

[!WARNING] Cet outil est fourni uniquement à des fins éducatives et de tests de sécurité autorisés. Il a été écrit pour résoudre la machine Hack The Box "Principal", et les valeurs par défaut (iss, role, kid) sont adaptées à cette machine. Utilisez-le uniquement contre des systèmes que vous possédez ou pour lesquels vous êtes explicitement autorisé à tester.


La vulnérabilité

Les versions < 4.5.9, < 5.7.9 et < 6.3.3 de pac4j-jwt contiennent une faille logique dans JwtAuthenticator lorsqu'il traite des JWT chiffrés (JWE).

Lorsque JwtAuthenticator déchiffre un JWE, il tente d'analyser le jeton interne comme un SignedJWT. Si le jeton interne est un PlainJWT non signé (alg: none), l'objet SignedJWT revient null et, en raison de l'erreur logique, le chemin de vérification de signature est complètement ignoré. L'authentificateur construit alors un profil utilisateur directement à partir des revendications non vérifiées.

En d'autres termes, le chiffrement JWE externe — qui ne nécessite que la clé publique du serveur — est confondu avec une preuve d'authenticité, de sorte que tout attaquant capable de lire la clé publique peut créer des jetons entièrement fiables.

Chaîne d'attaque

  1. Récupérer la clé publique RSA de la cible depuis son endpoint JWKS (par exemple /api/auth/jwks).
  2. Forger un PlainJWT non signé (alg: none) avec des revendications choisies par l'attaquant (sub, role, iss, …).
  3. Envelopper ce PlainJWT dans une enveloppe JWE chiffrée avec la clé publique de la cible.
  4. Envoyer le JWE compact résultant comme jeton Bearer. Le JwtAuthenticator vulnérable le déchiffre, ignore la vérification de signature et fait confiance aux revendications forgées.

Prérequis

  • Python 3.8+
  • Dépendances depuis requirements.txt :
root@kitploit:~
pip install -r requirements.txt

(requests, jwcrypto, cryptography)


Utilisation

root@kitploit:~
python3 exploit.py -u <username> [options]

Options

FlagDescriptionDéfaut
-t, --targetURL de base de la cible (ex. http://host:8080)—
--jwks-urlChemin de l'endpoint JWKS/api/auth/jwks
--jwks-fileCharger JWKS depuis un fichier local au lieu de le récupérer depuis --target—
-u, --usernameValeur pour la revendication sub (obligatoire)—
--roleValeur pour la revendication roleROLE_ADMIN
--issValeur pour la revendication issprincipal-platform
--expDurée de validité du jeton en secondes3600
--verify-endpointEndpoint protégé pour tester le jeton forgé (ex. /api/settings)—
-k, --insecureDésactiver la vérification du certificat TLSdésactivé
-o, --outputÉcrire le JWE forgé dans un fichier au lieu de stdoutstdout
-v, --verboseAfficher la charge utile du JWT forgé sur stderrdésactivé

Vous devez fournir soit --target (pour récupérer le JWKS via le réseau) soit --jwks-file (pour le fournir localement).

Exemples

Forger un jeton administrateur en récupérant la clé publique de la cible et l'afficher sur stdout :

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin

Forger un jeton, puis le tester automatiquement contre un endpoint protégé :

root@kitploit:~
python3 exploit.py -t http://target:8080 -u admin \
    --verify-endpoint /api/settings -v

Utiliser un JWKS sauvegardé localement et enregistrer le jeton dans un fichier :

root@kitploit:~
python3 exploit.py --jwks-file jwks.json -u admin -o token.jwe

Correction

Mettez à jour org.pac4j:pac4j-jwt vers une version corrigée :

  • Branche 4.x → 4.5.9 ou plus récent
  • Branche 5.x → 5.7.9 ou plus récent
  • Branche 6.x → 6.3.3 ou plus récent

Licence

Publié sous la Licence MIT.

Télécharger l’outil