Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
CVE-2026-29000-PoC — CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) PoC di bypass dell'autenticazione in JwtAuthenticator | Kitploit
Strumenti/GitHubGitHub/dua2z3rr/cve-2026-29000-poc
Generazione di PayloadAnalisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebCTFPenetration TestingAutenticazioneApprendimento e Formazione
GitHubdua2z3rr/cve-2026-29000-poc

CVE-2026-29000-PoC

CVE-2026-29000 - pac4j-jwt (< 4.5.9 / < 5.7.9 / < 6.3.3) PoC di bypass dell'autenticazione in JwtAuthenticator

Vedi Repository
1218 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

CVE-2026-29000 — Bypass dell'autenticazione JwtAuthenticator di pac4j-jwt — PoC

Una proof-of-concept per CVE-2026-29000, un bypass dell'autenticazione nel componente pac4j-jwt JwtAuthenticator (CVSS 10.0, Critica).

Lo script forgia un token che impersona qualsiasi utente con qualsiasi ruolo — senza conoscere alcun segreto — purché il target esponga la sua chiave pubblica RSA.

[!WARNING] Questo strumento è fornito solo per scopi educativi e test di sicurezza autorizzati. È stato scritto per risolvere la macchina Hack The Box "Principal", e i valori predefiniti (iss, role, kid) sono calibrati su quella macchina. Usalo solo contro sistemi di tua proprietà o per i quali sei esplicitamente autorizzato a fare test.


La vulnerabilità

Le versioni di pac4j-jwt < 4.5.9, < 5.7.9 e < 6.3.3 contengono un difetto logico in JwtAuthenticator quando elabora JWT cifrati (JWE).

Quando JwtAuthenticator decifra una JWE, tenta di analizzare il token interno come un SignedJWT. Se il token interno è un PlainJWT non firmato (alg: none), l'oggetto SignedJWT restituisce null e, a causa dell'errore logico, il percorso di verifica della firma viene saltato del tutto. L'autenticatore quindi costruisce un profilo utente direttamente dalle attestazioni non verificate.

In altre parole, la cifratura esterna JWE — che richiede solo la chiave pubblica del server — viene scambiata per prova di autenticità, quindi qualsiasi attaccante che possa leggere la chiave pubblica può coniare token completamente attendibili.

Catena di attacco

  1. Recupera la chiave pubblica RSA del target dall'endpoint JWKS (es. /api/auth/jwks).
  2. Forgia un PlainJWT non firmato (alg: none) con attestazioni scelte dall'attaccante (sub, role, iss, …).
  3. Avvolgi quel PlainJWT in un involucro JWE cifrato con la chiave pubblica del target.
  4. Invia la JWE compatta risultante come token Bearer. Il JwtAuthenticator vulnerabile la decifra, salta la verifica della firma e si fida delle attestazioni forgiate.

Requisiti

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

(requests, jwcrypto, cryptography)


Utilizzo

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

Opzioni

FlagDescrizionePredefinito
-t, --targetURL di base del target (es. http://host:8080)—
--jwks-urlPercorso dell'endpoint JWKS/api/auth/jwks
--jwks-fileCarica JWKS da un file locale invece di recuperarlo da --target—
-u, --usernameValore per l'attestazione sub (obbligatorio)—
--roleValore per l'attestazione roleROLE_ADMIN
--issValore per l'attestazione issprincipal-platform
--expValidità del token in secondi3600
--verify-endpointEndpoint protetto su cui testare il token forgiato (es. /api/settings)—
-k, --insecureDisabilita la verifica del certificato TLSoff
-o, --outputScrive la JWE forgiata su un file invece che su stdoutstdout
-v, --verboseStampa il payload JWT forgiato su stderroff

Devi fornire --target (per recuperare il JWKS dalla rete) oppure --jwks-file (per fornirlo localmente).

Esempi

Forgia un token admin recuperando la chiave pubblica dal target e stampalo su stdout:

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

Forgia un token, poi testalo automaticamente contro un endpoint protetto:

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

Usa un JWKS salvato localmente e salva il token su un file:

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

Rimedio

Aggiorna org.pac4j:pac4j-jwt a una release corretta:

  • linea 4.x → 4.5.9 o successiva
  • linea 5.x → 5.7.9 o successiva
  • linea 6.x → 6.3.3 o successiva

Licenza

Rilasciato sotto la Licenza MIT.

Scarica lo strumento