Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
pac4j-check — Scanner offline per CVE-2026-29000 (CVSS 10.0) in org.pac4j:pac4j-jwt. Ispeziona direttamente jar/fat-jar, quindi funziona dove mvn dependency:tree non può. Singolo jar, zero dipendenze, Java 8+. | Kitploit
Strumenti/GitHubGitHub/xiaoqimikko/pac4j-check
Analisi StaticaScanner di VulnerabilitàDevSecOpsSicurezza della Supply Chain
GitHubxiaoqimikko/pac4j-check

pac4j-check

Scanner offline per CVE-2026-29000 (CVSS 10.0) in org.pac4j:pac4j-jwt. Ispeziona direttamente jar/fat-jar, quindi funziona dove mvn dependency:tree non può. Singolo jar, zero dipendenze, Java 8+.

Vedi Repository
161 mese 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

pac4j-check

Scansione offline per CVE-2026-29000 (CVSS 10.0) — inclusi i pacchetti che l'advisory ufficiale non elenca.

English | 中文

Un singolo jar, circa 24KB, zero dipendenze a runtime, disponibile da Java 8, completamente offline, non trasmette alcun dato.


Cos'è questa vulnerabilità

JwtAuthenticator di org.pac4j:pac4j-jwt non impone la verifica della firma durante l'elaborazione di JWT cifrati (JWE). Un attaccante che ottiene la chiave pubblica RSA del server (la chiave pubblica è pubblica per definizione), può costruire un PlainJWT incapsulato in un JWE, scrivendo subject e role con valori arbitrari, autenticandosi come qualsiasi utente, inclusi gli amministratori. Senza alcuna credenziale.

VoceValore
CVECVE-2026-29000
GitHub advisoryGHSA-pm7g-w2cf-q238
CVSS10.0 (punteggio pieno)
Data di pubblicazione2026-03-05

pac4j è ampiamente integrato in Spring Security, Apereo CAS, JEE, Vert.x, Play, Dropwizard e altri.

🔴 Correzione v0.2.0: l'affermazione centrale della v0.1.0 era errata

La v0.1.0 sosteneva che «il database ufficiale delle vulnerabilità elenca solo 1 pacchetto, mentre in realtà ce ne sono 5», e di conseguenza segnalava come vulnerabili pac4j-oidc / javalin-pac4j / lagom-pac4j / ratpack-pac4j. Erano falsi positivi. L'advisory ufficiale elenca correttamente solo pac4j-jwt.

Base della revisione (due prove indipendenti, entrambe riproducibili autonomamente):

ArtefattoLa sua dipendenza da pac4j-jwtViene trasmessa agli utilizzatori
pac4j-oidcscope test (verificato versione per versione su 3.0.0 / 4.0.0 / 4.5.0 / 5.0.0 / 5.7.0 / 6.0.0 / 6.3.0)❌
javalin-pac4jscope test❌
lagom-pac4j-parentscope provided❌
ratpack-pac4j:1.4.6quel blocco di dipendenze è interamente racchiuso in un commento XML, non esiste affatto❌
  1. Lo scope non si propaga —— in Maven le dipendenze test / provided non vengono trasmesse a valle, pac4j-jwt non comparirà mai nel runtime classpath degli utilizzatori.
  2. Verifica materiale dell'artefatto —— pac4j-oidc-6.0.0.jar contiene 78 voci, tutte sotto org/pac4j/oidc/, senza alcuna classe pac4j-jwt inclusa tramite shade. Né trasmessa, né incorporata.

Dov'è l'errore: la v0.1.0 analizzava i pom uno per uno, ma guardava solo «chi dichiara la coordinata pac4j-jwt», senza considerare lo scope —— scambiando «dichiarato nel pom» per «l'utilizzatore lo riceverà».

Se hai aggiornato pac4j a causa di un report della v0.1.0, quell'aggiornamento non era necessario (l'aggiornamento in sé è innocuo). È necessario intervenire solo quando nella tua applicazione è effettivamente presente una versione vulnerabile di pac4j-jwt.

Perché serve comunque uno strumento dedicato

Per determinare se su una determinata macchina esiste effettivamente un pac4j-jwt vulnerabile, mvn dependency:tree fallisce in due situazioni —— sulla macchina di produzione c'è solo un fat-jar già compilato (senza sorgenti né pom); oppure è stato incluso tramite shade all'interno di un SDK, e non compare affatto nell'albero delle dipendenze. Questo strumento analizza direttamente l'artefatto stesso, senza dipendere dall'ambiente di build.

ArtefattoNumero di versioni vulnerabiliAdvisory ufficiale
org.pac4j:pac4j-jwt114✅ l'unico elencato, e questo è corretto

Utilizzo

java -jar pac4j-check.jar ./myapp.jar        # analizza un jar/war
java -jar pac4j-check.jar /opt/apps          # analizza una directory (ricorsivamente)
java -jar pac4j-check.jar /opt/apps --json   # output JSON, comodo per le pipeline
java -jar pac4j-check.jar ./app.jar --gbk    # da usare quando la console Windows mostra caratteri cinesi corrotti

Codici di uscita: 0 = nessun problema rilevato · 1 = dubbio/impossibile determinare · 2 = vulnerabilità rilevata. Utilizzabile direttamente in CI.

Esempio di output

[CRITICAL] pac4j-jwt 5.4.3
  位置    :demo-app.jar!/BOOT-INF/lib/pac4j-jwt-5.4.3.jar
  版本来源:pom.properties(可靠)
  部署形态:Spring Boot fat-JAR
  结论    :命中 CVE-2026-29000 —— JWE 处理路径未强制校验签名,
            拿到服务器 RSA 公钥即可伪造任意身份(含管理员)登录
  处置    :升级 pac4j-jwt 至 5.7.9

La v0.1.0 in questo caso segnalava anche un [CRITICAL] pac4j-oidc —— era un falso positivo, rimosso nella v0.2.0, per i motivi spiegati nella correzione all'inizio.

Cosa fa

  • Espande ricorsivamente i fat-JAR di Spring Boot (in memoria, senza estrazione su disco), risalendo al percorso annidato specifico
  • Rileva i casi di shade all'interno di un jar ospite —— proprio quelli che mvn dependency:tree non riesce a individuare
  • Risale alla catena di introduzione —— ti dice quale artefatto ha trascinato dentro pac4j-jwt
  • Fornisce un verdetto basato sugli intervalli ufficiali e un obiettivo di aggiornamento concreto

Regole di verdetto e limiti (leggere prima dell'uso)

Il verdetto si basa esclusivamente sull'advisory ufficiale GHSA-pm7g-w2cf-q238:

pac4j-jwt  < 4.5.9                      -> aggiorna a 4.5.9
pac4j-jwt  >= 5.0.0-RC1  且 < 5.7.9     -> aggiorna a 5.7.9
pac4j-jwt  >= 6.0.4.1    且 < 6.3.3     -> aggiorna a 6.3.3

Autoverifica: questo strumento esegue il verdetto su tutte le 147 versioni di pac4j-jwt presenti su Maven Central, ottenendo 114 corrispondenze, in perfetta corrispondenza con la somma delle versioni nei tre intervalli dell'advisory ufficiale (13+33+68). Questa asserzione è scritta nei test (OfficialRangeCrossCheckTest); se non corrisponde, la build fallisce.

⚠️ Ma bisogna essere chiari su cosa verifica: verifica che l'algoritmo degli intervalli di versione sia corretto, non può verificare «quali artefatti debbano entrare nella tabella dei verdetti» —— il falso positivo della v0.1.0 si è verificato proprio su quest'ultimo punto, e all'epoca questa autoverifica era verde. L'ambito coperto dalla verifica ≠ l'ambito in cui la conclusione è valida.

Due limiti che devono essere chiariti

  1. Copre solo il groupId org.pac4j. Alcune ricerche di terze parti sostengono che gli artefatti vulnerabili siano 19 in totale, per 1.020 versioni, ma non hanno pubblicato l'elenco completo. Questo strumento ricostruisce in modo indipendente la porzione relativa a org.pac4j, senza pretendere di coprire tutto. Altri groupId (come org.apereo.cas di Apereo CAS) non sono inclusi.

  2. pac4j-jwt 6.0.0 ~ 6.0.4 è contrassegnato come «dubbio» e non come «vulnerabile». La fonte ufficiale afferma che la serie 6.x è vulnerabile a partire da 6.0.4.1; mentre ricerche di terze parti sostengono che la vulnerabilità fosse stata introdotta già in 1.9.2 —— se fosse vero, anche queste 5 versioni dovrebbero essere conteggiate. Non abbiamo verificato in modo indipendente le conclusioni di terze parti, quindi le segnaliamo separatamente e raccomandiamo un aggiornamento prudente, invece di dichiararle direttamente vulnerabili.

Perché tanta prudenza: una regola di verdetto sbagliata non è un «falso positivo», è far compiere all'utente l'azione sbagliata. Meglio contrassegnare come dubbio, piuttosto che fissare come conclusione un ambito non verificato.

Build

mvn package        # artefatto: target/pac4j-check.jar
mvn test           # 31 test

Feedback

Se trovi errori di verdetto, mancate rilevazioni o falsi positivi, apri una Issue. Se puoi fornire coordinate riproducibili dell'artefatto (groupId:artifactId:version), la correzione sarà molto più rapida.

License

Apache License 2.0


pac4j-check (English)

Scanner offline per CVE-2026-29000 (CVSS 10.0) — inclusi i pacchetti che l'advisory ufficiale non elenca.

Un singolo jar, ~24KB, zero dipendenze a runtime, Java 8+, completamente offline, non invia nulla da nessuna parte.

Scarica lo strumento