Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-29000-PoC — CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) PoC de bypass de autenticación de JwtAuthenticator | Kitploit
Herramientas/GitHubGitHub/dua2z3rr/cve-2026-29000-poc
Generación de PayloadsAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebCTFPruebas de PenetraciónAutenticaciónAprendizaje y Educación
GitHubdua2z3rr/cve-2026-29000-poc

CVE-2026-29000-PoC

CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) PoC de bypass de autenticación de JwtAuthenticator

Ver Repositorio
1hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2026-29000 — Bypass de autenticación en JwtAuthenticator de pac4j-jwt — PoC

Una prueba de concepto para CVE-2026-29000, un bypass de autenticación en el componente pac4j-jwt JwtAuthenticator (CVSS 10.0, Crítico).

El script forja un token que suplanta a cualquier usuario con cualquier rol — sin conocer ni un solo secreto — siempre y cuando el objetivo exponga su clave RSA pública.

[!WARNING] Esta herramienta se proporciona solo con fines educativos y para pruebas de seguridad autorizadas. Fue escrita para resolver la máquina de Hack The Box "Principal", y los valores predeterminados (iss, role, kid) están adaptados a esa máquina. Úsala únicamente contra sistemas que poseas o para los que tengas autorización explícita de pruebas.


La vulnerabilidad

Las versiones de pac4j-jwt < 4.5.9, < 5.7.9 y < 6.3.3 contienen un fallo de lógica en JwtAuthenticator cuando procesa JWTs cifrados (JWE).

Cuando JwtAuthenticator descifra un JWE, intenta analizar el token interno como un SignedJWT. Si el token interno es un PlainJWT sin firmar (alg: none), el objeto SignedJWT se devuelve como null y, debido al error de lógica, la ruta de verificación de firma se omite por completo. El autenticador entonces construye un perfil de usuario directamente a partir de las reclamaciones no verificadas.

En otras palabras, el cifrado JWE externo — que solo requiere la clave pública del servidor — se confunde con una prueba de autenticidad, por lo que cualquier atacante que pueda leer la clave pública puede acuñar tokens totalmente confiables.

Cadena de ataque

  1. Obtener la clave pública RSA del objetivo desde su endpoint JWKS (p. ej. /api/auth/jwks).
  2. Forjar un PlainJWT sin firmar (alg: none) con reclamaciones elegidas por el atacante (sub, role, iss, …).
  3. Envolver ese PlainJWT en un sobre JWE cifrado con la clave pública del objetivo.
  4. Enviar el JWE compacto resultante como token Bearer. El vulnerable JwtAuthenticator lo descifra, omite la verificación de firma y confía en las reclamaciones forjadas.

Requisitos

  • Python 3.8+
  • Dependencias de requirements.txt:
root@kitploit:~
pip install -r requirements.txt

(requests, jwcrypto, cryptography)


Uso

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

Opciones

Debes proporcionar ya sea --target (para obtener el JWKS a través de la red) o --jwks-file (para suministrarlo localmente).

Ejemplos

Forjar un token de administrador obteniendo la clave pública del objetivo e imprimirlo en stdout:

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

Forjar un token y luego probarlo automáticamente contra un endpoint protegido:

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

Usar un JWKS guardado localmente y guardar el token en un archivo:

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

Mitigación

Actualiza org.pac4j:pac4j-jwt a una versión parcheada:

  • Línea 4.x → 4.5.9 o superior
  • Línea 5.x → 5.7.9 o superior
  • Línea 6.x → 6.3.3 o superior

Licencia

Publicado bajo la Licencia MIT.

Descargar herramienta
FlagDescripciónValor predeterminado
-t, --targetURL base del objetivo (p. ej. http://host:8080)—
--jwks-urlRuta del endpoint JWKS/api/auth/jwks
--jwks-fileCargar JWKS desde un archivo local en lugar de obtenerlo desde --target—
-u, --usernameValor para la reclamación sub (obligatorio)—
--roleValor para la reclamación roleROLE_ADMIN
--issValor para la reclamación issprincipal-platform
--expValidez del token en segundos3600
--verify-endpointEndpoint protegido para probar el token forjado (p. ej. /api/settings)—
-k, --insecureDeshabilitar la verificación del certificado TLSoff
-o, --outputEscribir el JWE forjado en un archivo en lugar de stdoutstdout
-v, --verboseImprimir el payload JWT forjado en stderroff