
Prueba de concepto de exploit para CVE-2026-29000, una omisión de autenticación en pac4j-jwt mediante JWT sin firmar envuelto en JWE, que permite la escalada de privilegios.
Esta herramienta es únicamente para fines educativos y de pruebas de seguridad ética. No apoyo ni apoyaré el ciberdelito de ninguna manera, forma o modo. Úsala bajo tu propio riesgo.
CVE-2026-29000 es una vulnerabilidad crítica (CVSS 10.0) en la librería pac4j-jwt. Se origina en una lógica de validación incorrecta en JwtAuthenticator al manejar tokens anidados (cifrados).
La falla existe porque, mientras que pac4j descifra correctamente un token JWE (JSON Web Encryption) usando la clave del servidor, no aplica la verificación de firma en el JWT interno. Esto permite a un atacante envolver un JWT sin firmar (usando {"alg": "none"}) dentro de un contenedor JWE válido. El servidor descifra el JWE, confía en la carga útil interna y concede el acceso.
pac4j anteriores a 4.5.9, 5.7.9 y 6.3.3.ROLE_ADMIN).El script proporcionado, CVE-2026-29000.py, automatiza los siguientes pasos:
/api/auth/jwks.alg: none y afirmaciones administrativas.Asegúrate de tener instaladas las librerías de Python necesarias:
pip install requests jwcrypto
python3 CVE-2026-29000.py <TARGET_URL>
Ejemplo:
python3 CVE-2026-29000.py http://vulnerable-app.local:8080
Para mitigar esta vulnerabilidad, toma las siguientes acciones:
pac4j-jwt a la versión 4.5.9, 5.7.9 o 6.3.3 (o superior) de inmediato.JwtAuthenticator requiera explícitamente una firma válida y no permita el algoritmo none.Creado por: Cipher1x1