
Generatore di exploit basato su Rust per CVE-2026-29000, un bypass dell'autenticazione in pac4j-jwt tramite JWT con alg:none annidato in JWE, che automatizza il recupero di JWKS e la forgiatura di token per test autorizzati.
Questo repository contiene un'implementazione Rust specializzata per sfruttare CVE-2026-29000, una vulnerabilità di bypass dell'autenticazione in pac4j-jwt. La vulnerabilità deriva da un "Salto della Validazione della Firma" quando un PlainJWT (alg: none) è annidato all'interno di un contenitore JWE crittografato.
Recupero Automatico di JWKS: Recupera le chiavi RSA pubbliche del target direttamente dall'endpoint /api/auth/jwks.
Costruzione di JWS Non Protetto: Crea un JWT con algoritmo None contenente claim amministrativi (ROLE_ADMIN).
Wrapper JWE: Incapsula il token interno dannoso utilizzando RSA-OAEP-256 e A128GCM per bypassare i filtri perimetrali iniziali.
Esecuzione Asincrona: Basato su tokio e reqwest per un networking efficiente.
Rust/Cargo installato.
Accesso di rete al target (predefinito: http://principal.htb:8080).
Installazione Clona il repository:
git clone https://github.com/0xW1LD/CVE-2026-29000.git
cd CVE-2026-29000
Esegui il generatore di exploit per produrre il JWE contraffatto:
cargo run
L'exploit sfrutta un difetto logico in cui la libreria decrittografa il JWE esterno ma non riesce a validare ricorsivamente la firma del JWS interno se l'header specifica alg: none.
Strato Interno: Un JWT con alg: None contenente il soggetto admin.
Strato Esterno: Il JWT interno viene crittografato utilizzando la chiave pubblica del server stesso.
Risultato: Il server decrittografa il token, vede che è stato crittografato correttamente e si fida del payload interno senza verificarne la firma.
Questo strumento è destinato esclusivamente a scopi educativi e test di sicurezza autorizzati (ambienti CTF/Lab). L'accesso non autorizzato a sistemi informatici è illegale.