
Generador de exploits basado en Rust para CVE-2026-29000, una omisión de autenticación en pac4j-jwt mediante JWT con alg:none anidado en JWE, que automatiza la recuperación de JWKS y la falsificación de tokens para pruebas autorizadas.
Este repositorio contiene una implementación especializada en Rust para explotar CVE-2026-29000, una vulnerabilidad de omisión de autenticación en pac4j-jwt. La vulnerabilidad se origina en una "Omisión de Validación de Firma" cuando un PlainJWT (alg: none) está anidado dentro de un contenedor JWE cifrado.
Recuperación Automatizada de JWKS: Obtiene las claves RSA públicas del objetivo directamente desde el endpoint /api/auth/jwks.
Construcción de JWS No Asegurado: Elabora un JWT con algoritmo None y claims administrativos (ROLE_ADMIN).
Envoltorio JWE: Encapsula el token interno malicioso usando RSA-OAEP-256 y A128GCM para evadir los filtros perimetrales iniciales.
Ejecución Asíncrona: Impulsado por tokio y reqwest para una red eficiente.
Rust/Cargo instalado.
Acceso de red al objetivo (por defecto: http://principal.htb:8080).
Instalación Clona el repositorio:
git clone https://github.com/0xW1LD/CVE-2026-29000.git
cd CVE-2026-29000
Ejecuta el generador de exploits para generar el JWE falsificado:
cargo run
El exploit apunta a una falla lógica donde la librería descifra el JWE externo pero no logra validar recursivamente la firma del JWS interno si el encabezado especifica alg: none.
Capa Interna: Un JWT con alg: None que contiene el sujeto administrador.
Capa Externa: El JWT interno se cifra usando la propia clave pública del servidor.
Resultado: El servidor descifra el token, ve que fue cifrado correctamente y confía en el payload interno sin verificar una firma.
Esta herramienta es solo para fines educativos y pruebas de seguridad autorizadas (entornos CTF/Lab). El acceso no autorizado a sistemas informáticos es ilegal.