Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pac4j-check — Offline-Scanner für CVE-2026-29000 (CVSS 10.0) in org.pac4j:pac4j-jwt. Untersucht Jars/Fat-Jars direkt, funktioniert also dort, wo mvn dependency:tree nicht funktioniert. Einzelnes Jar, keine Abhängigkeiten, Java 8+. | Kitploit
Tools/GitHubGitHub/xiaoqimikko/pac4j-check
Statische AnalyseSchwachstellenscannerDevSecOpsLieferkettensicherheit
GitHubxiaoqimikko/pac4j-check

pac4j-check

Offline-Scanner für CVE-2026-29000 (CVSS 10.0) in org.pac4j:pac4j-jwt. Untersucht Jars/Fat-Jars direkt, funktioniert also dort, wo mvn dependency:tree nicht funktioniert. Einzelnes Jar, keine Abhängigkeiten, Java 8+.

Repository anzeigen
16vor 1 MonatNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

pac4j-check

Offline-Prüfung auf CVE-2026-29000 (CVSS 10.0) – einschließlich der Pakete, die im offiziellen Advisory nicht aufgeführt sind.

English | 中文

Ein einzelnes JAR, ca. 24 KB, keine Laufzeitabhängigkeiten, ab Java 8 verfügbar, vollständig offline, es werden keinerlei Daten nach außen übertragen.


Was diese Schwachstelle ist

Der JwtAuthenticator von org.pac4j:pac4j-jwt erzwingt bei der Verarbeitung von verschlüsselten JWTs (JWE) keine Signaturprüfung. Ein Angreifer muss lediglich den RSA-Public-Key des Servers kennen (der Public-Key ist ohnehin öffentlich), kann dann ein JWE-verpacktes PlainJWT konstruieren, subject und Rolle auf beliebige Werte setzen und sich als beliebiger Benutzer anmelden, einschließlich Administrator. Es sind keinerlei Zugangsdaten erforderlich.

PunktWert
CVECVE-2026-29000
GitHub AdvisoryGHSA-pm7g-w2cf-q238
CVSS10.0 (Maximalwert)
Veröffentlichung2026-03-05

pac4j wird weit verbreitet integriert, u. a. in Spring Security, Apereo CAS, JEE, Vert.x, Play und Dropwizard.

🔴 Korrektur in v0.2.0: Die zentrale Behauptung von v0.1.0 war falsch

v0.1.0 behauptete, „die offizielle Schwachstellendatenbank listet nur 1 Paket, tatsächlich sind es 5", und meldete daher pac4j-oidc / javalin-pac4j / lagom-pac4j / ratpack-pac4j als gefährdet. Das waren Fehlalarme. Das offizielle Advisory listet zu Recht nur pac4j-jwt.

Grundlage der Überprüfung (zwei unabhängige Belege, beide selbst reproduzierbar):

ArtefaktSeine Abhängigkeit von pac4j-jwtWird sie an Nutzer weitergegeben
pac4j-oidctest-Scope (Version für Version geprüft: 3.0.0 / 4.0.0 / 4.5.0 / 5.0.0 / 5.7.0 / 6.0.0 / 6.3.0)❌
javalin-pac4jtest-Scope❌
lagom-pac4j-parentprovided-Scope❌
ratpack-pac4j:1.4.6Der gesamte Abhängigkeitsblock ist von einem XML-Kommentar umschlossen und existiert gar nicht❌
  1. Scope wird nicht weitergereicht – In Maven werden test- / provided-Abhängigkeiten nicht an nachgelagerte Projekte weitergegeben, pac4j-jwt erscheint also nicht im Runtime-Classpath der Nutzer.
  2. Nachprüfung am Artefakt selbst – pac4j-oidc-6.0.0.jar enthält insgesamt 78 Einträge, alle unter org/pac4j/oidc/, keine einzige hereingeshadete pac4j-jwt-Klasse. Sie wird weder weitergereicht noch mitgeliefert.

Wo der Fehler lag: v0.1.0 hat jede pom einzeln geparst, aber nur darauf geschaut, „wer die Koordinate pac4j-jwt nennt", ohne den scope zu beachten – „in der pom steht es" wurde mit „der Nutzer bekommt es" gleichgesetzt.

Falls Sie wegen eines Berichts aus v0.1.0 pac4j aktualisiert haben, war dieses Update nicht erforderlich (das Update selbst ist harmlos). Handlungsbedarf besteht nur, wenn in Ihrer Anwendung tatsächlich eine betroffene Version von pac4j-jwt vorhanden ist.

Warum trotzdem ein spezielles Werkzeug nötig ist

Um festzustellen, ob auf einer bestimmten Maschine tatsächlich ein betroffenes pac4j-jwt vorhanden ist, versagt mvn dependency:tree in zwei Fällen – auf einer Produktionsmaschine liegt nur ein fertig gebautes Fat-JAR (ohne Quellcode und pom); oder es wurde in ein SDK hineingeshade und taucht im Abhängigkeitsbaum gar nicht auf. Dieses Werkzeug durchsucht direkt das Artefakt selbst und ist nicht von der Build-Umgebung abhängig.

ArtefaktAnzahl betroffener VersionenOffizielles Advisory
org.pac4j:pac4j-jwt114✅ das einzige aufgeführte, und das ist korrekt

Verwendung

java -jar pac4j-check.jar ./myapp.jar        # scannt ein jar/war
java -jar pac4j-check.jar /opt/apps          # scannt ein Verzeichnis (rekursiv)
java -jar pac4j-check.jar /opt/apps --json   # JSON-Ausgabe, praktisch für Pipes
java -jar pac4j-check.jar ./app.jar --gbk    # bei Zeichensatzproblemen in der Windows-Konsole

Exit-Codes: 0 = nicht betroffen gefunden · 1 = fraglich/nicht bestimmbar · 2 = betroffen gefunden. Direkt in CI einbindbar.

Beispielausgabe

[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

v0.1.0 würde hier zusätzlich einen Eintrag [CRITICAL] pac4j-oidc melden – das war ein Fehlalarm, in v0.2.0 entfernt, Begründung siehe die Korrektur am Anfang.

Was es tut

  • Rekursives Entpacken von Spring Boot Fat-JARs (im Speicher, ohne auf die Festplatte zu schreiben), mit Rückverfolgung zum konkreten verschachtelten Pfad
  • Erkennung von in ein Host-JAR hereingeshadeten Fällen – genau die Fälle, die mvn dependency:tree nicht findet
  • Rückverfolgung der Einführungskette – zeigt, welches Artefakt pac4j-jwt hereingezogen hat
  • Liefert anhand der offiziellen Bereiche eine Bewertung und ein konkretes Upgrade-Ziel

Bewertungsregeln und Grenzen (bitte vor der Verwendung vollständig lesen)

Die Bewertung richtet sich ausschließlich nach dem offiziellen Advisory GHSA-pm7g-w2cf-q238:

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

Selbstüberprüfung: Dieses Werkzeug führt die Bewertung für alle 147 Versionen von pac4j-jwt auf Maven Central durch, die Trefferzahl beträgt 114 und stimmt exakt mit der Summe der Versionen aus den drei Bereichen des offiziellen Advisories überein (13+33+68). Diese Zusicherung ist im Test (OfficialRangeCrossCheckTest) hinterlegt; bei Abweichung schlägt der Build fehl.

⚠️ Aber man muss sich klar machen, was damit verifiziert wird: Verifiziert wird, dass der Versionsbereichs-Algorithmus korrekt ist, nicht verifizierbar ist, „welche Artefakte in die Bewertungstabelle gehören" – genau Letzteres war die Ursache des Fehlalarms in v0.1.0, und damals war diese Selbstüberprüfung grün. Der Umfang, in dem die Prüfung besteht, ist nicht der Umfang, in dem die Schlussfolgerung gilt.

Zwei Einschränkungen, die genannt werden müssen

  1. Es wird nur die eine groupId org.pac4j abgedeckt. Eine Drittstudie nennt insgesamt 19 betroffene Artefakte mit 1.020 Versionen, veröffentlicht aber keine vollständige Liste. Dieses Werkzeug rekonstruiert unabhängig den Teil im Bereich von org.pac4j und erhebt keinen Anspruch auf vollständige Abdeckung. Andere groupIds (z. B. org.apereo.cas von Apereo CAS) sind nicht enthalten.

  2. pac4j-jwt 6.0.0 bis 6.0.4 wird als „fraglich" und nicht als „betroffen" gekennzeichnet. Offiziell gilt 6.x ab 6.0.4.1 als betroffen; eine Drittstudie behauptet, die Schwachstelle sei bereits in 1.9.2 eingeführt worden – falls das zutrifft, müssten auch diese 5 Versionen dazugezählt werden. Wir haben die Schlussfolgerung der Drittstudie nicht unabhängig verifiziert, daher werden sie separat gekennzeichnet und ein konservatives Upgrade empfohlen, statt sie direkt als gefährdet einzustufen.

Warum so konservativ: Eine falsche Bewertungsregel ist kein „Fehlalarm", sondern führt dazu, dass Nutzer das Falsche tun. Lieber als fraglich kennzeichnen, als einen nicht verifizierten Bereich als feste Schlussfolgerung festzuschreiben.

Build

mvn package        # 产物:target/pac4j-check.jar
mvn test           # 31 个测试

Feedback

Wenn Sie Bewertungsfehler, übersehene Fälle oder Fehlalarme finden, erstellen Sie bitte ein Issue. Wenn Sie reproduzierbare Artefakt-Koordinaten (groupId:artifactId:version) angeben können, geht die Behebung deutlich schneller.

License

Apache License 2.0


pac4j-check (English)

Offline scanner for CVE-2026-29000 (CVSS 10.0) — including the packages the official advisory does not list.

Tool herunterladen