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-Lab — Libreria di laboratorio proof-of-concept che dimostra la CVE-2026-29000 in pac4j-jwt, confrontando versioni vulnerabili e corrette con Docker per mostrare l'accettazione e il rifiuto di JWT contraffatti. | Kitploit
Strumenti/GitHubGitHub/rootdirective-sec/cve-2026-29000-lab
Analisi delle VulnerabilitàExploitSicurezza WebAutenticazione
GitHubrootdirective-sec/cve-2026-29000-lab

CVE-2026-29000-Lab

Libreria di laboratorio proof-of-concept che dimostra la CVE-2026-29000 in pac4j-jwt, confrontando versioni vulnerabili e corrette con Docker per mostrare l'accettazione e il rifiuto di JWT contraffatti.

Vedi Repository
15 mesi 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 — Laboratorio PoC a livello di libreria per pac4j-jwt

TL;DR

Questo repository contiene un PoC a livello di libreria per CVE-2026-29000 in pac4j-jwt.

Confronta il comportamento vulnerabile e quello corretto con due casi:

  • Baseline: un token legittimo dovrebbe essere accettato
  • Attacco: un token contraffatto dovrebbe essere accettato nelle versioni vulnerabili e rifiutato nella versione corretta
VersioneBaselineAttaccoRisultato
6.0.3✅✅Vulnerabile
6.0.4.1✅✅Vulnerabile
6.3.3✅❌Corretta

Questo PoC dimostra la creazione di un profilo autenticato con subject e ruoli controllati dall'attaccante nelle versioni vulnerabili, mentre la versione corretta rifiuta il token contraffatto.


Cos'è questo progetto

Questa non è una demo di applicazione web.

È un piccolo programma Java che chiama direttamente JwtAuthenticator e confronta più versioni di pac4j-jwt all'interno di Docker.

L'obiettivo è dimostrare tre cose:

  1. i token legittimi funzionano ancora
  2. le claim contraffatte controllate dall'attaccante vengono accettate dalle versioni vulnerabili
  3. le claim contraffatte controllate dall'attaccante vengono rifiutate dalla versione corretta

Perché sono state selezionate queste versioni

Le versioni testate sono state scelte deliberatamente:

  • 6.0.3 — inclusa perché un write-up tecnico pubblico ha riportato un PoC funzionante su questa versione
  • 6.0.4.1 — inclusa perché i dati degli advisory pubblici la collocano all'interno dell'intervallo 6.x interessato
  • 6.3.3 — inclusa perché è la release corretta per la linea 6.x

Questo fornisce al laboratorio tre punti di riferimento utili:

  • una versione di riferimento per il PoC pubblico
  • una versione interessata confermata dall'advisory
  • la versione corretta

Struttura del progetto

root@kitploit:~
.
├── docker-compose.yml
├── Dockerfile
├── pom.xml
└── src/main/java/lab/Repro.java

Ruoli dei file

  • docker-compose.yml Definisce la matrice di test per ciascuna versione.

  • Dockerfile Compila ed esegue il PoC all'interno di un container.

  • pom.xml Definisce le dipendenze e compila un fat JAR eseguibile.

  • src/main/java/lab/Repro.java L'harness vero e proprio del PoC.


Cosa significano i servizi

Il file docker-compose.yml definisce tre servizi:

  • v603 = test di pac4j-jwt 6.0.3
  • v6041 = test di pac4j-jwt 6.0.4.1
  • patched = test di pac4j-jwt 6.3.3

Quindi questi comandi significano "esegui il PoC una volta contro quella specifica versione":

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

--rm significa che il container temporaneo viene rimosso al termine dell'esecuzione.


Come eseguirlo

Build

root@kitploit:~
docker compose build --no-cache

Esecuzione

root@kitploit:~
docker compose run --rm v603
docker compose run --rm v6041
docker compose run --rm patched

Cosa fa il PoC

Per ciascuna versione, il programma esegue due casi.

1) Baseline

Genera un token legittimo e lo valida tramite JwtAuthenticator.

Risultato atteso:

  • accettato su tutte le versioni testate

2) Attacco

Genera un token contraffatto con claim controllate dall'attaccante e lo valida tramite JwtAuthenticator.

Risultato atteso:

  • versioni vulnerabili → identità contraffatta accettata
  • versione corretta → token contraffatto rifiutato

Come leggere l'output

Output vulnerabile

Dovresti vedere qualcosa del genere:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: ACCEPTED
  observed_subject: admin#override
  observed_roles: [ROLE_SUPERUSER, ROLE_ADMIN]

[summary]
  conclusion: VULNERABLE: forged token accepted

Significato:

  • il token normale funziona
  • anche il token contraffatto viene accettato
  • subject e ruoli sono stati sostituiti con valori controllati dall'attaccante

Output corretto

Dovresti vedere qualcosa del genere:

root@kitploit:~
[case] baseline
  result: ACCEPTED
  observed_subject: alice
  observed_roles: [ROLE_USER]

[case] attack
  result: REJECTED
  reason: CredentialsException: A non-signed JWT cannot be accepted as signature configurations have been defined

[summary]
  conclusion: PATCHED: forged token rejected

Significato:

  • il token normale funziona
  • il token contraffatto viene rifiutato
  • la versione corretta non accetta più il percorso JWT interno non firmato utilizzato dall'attacco

Perché questo repository si concentra sul comportamento della libreria invece che su uno script generico per token

Questa CVE interessa un percorso di autenticazione a livello di libreria, non una singola applicazione con un modello di ruoli universale.

La parte riutilizzabile è la forma dell'attacco:

  • claim contraffatte controllate dall'attaccante
  • cifrate come JWE
  • passate a JwtAuthenticator

Ciò che non è universale nelle applicazioni reali:

  • nomi delle claim
  • nomi dei ruoli
  • mapping di autorizzazione
  • materiale delle chiavi / configurazione JWKS
  • gestione del profilo specifica dell'applicazione

Per questo motivo, questo repository si concentra sul dimostrare che la libreria accetta claim contraffatte controllate dall'attaccante nelle versioni vulnerabili, piuttosto che fingere che esista un token universale che funzionerebbe automaticamente contro applicazioni arbitrarie.


Screenshot

  1. docker compose run --rm v603
  2. docker compose run --rm v6041
  3. docker compose run --rm patched

Versione vulnerabile: 6.0.3

example 603 output

Versione vulnerabile: 6.0.4.1

example 6041 output

Versione corretta: 6.3.3

example patched output


Riferimenti

  • Advisory di sicurezza pac4j per JwtAuthenticator
  • GitHub Advisory Database: CVE-2026-29000
  • Voce NVD: CVE-2026-29000
  • Write-up tecnico CodeAnt: PoC di bypass dell'autenticazione a chiave pubblica

Conclusione finale

Questo progetto dimostra tre fatti fondamentali:

  1. i token baseline legittimi vengono accettati su tutte le versioni testate
  2. le claim contraffatte controllate dall'attaccante vengono accettate su 6.0.3 e 6.0.4.1
  3. le claim contraffatte controllate dall'attaccante vengono rifiutate su 6.3.3

Questa è la prova centrale vulnerabile-versus-corretta per questa CVE in questo repository.

Nelle versioni vulnerabili, il token contraffatto non viene semplicemente analizzato — produce un profilo autenticato con subject e ruoli controllati dall'attaccante.

Scarica lo strumento