
Proof-of-Concept-Exploit für CVE-2026-29000, eine Authentifizierungsumgehung in pac4j-jwt über ein JWE-verpacktes, unsigniertes JWT, die eine Privilegienausweitung ermöglicht.
Dieses Tool dient ausschließlich Bildungs- und ethischen Sicherheitstestzwecken. Ich unterstütze und befürworte keinerlei Form von Bedrohungsaktivitäten. Nutzung auf eigene Gefahr.
CVE-2026-29000 ist eine kritische Schwachstelle (CVSS 10.0) in der Bibliothek pac4j-jwt. Sie beruht auf fehlerhafter Validierungslogik im JwtAuthenticator bei der Verarbeitung verschachtelter (verschlüsselter) Token.
Der Fehler besteht darin, dass pac4j zwar ein JWE-Token (JSON Web Encryption) korrekt mit dem Serverschlüssel entschlüsselt, aber die Signaturprüfung des inneren JWT nicht durchsetzt. Dadurch kann ein Angreifer ein unsigniertes JWT (mit {"alg": "none"}) in einen gültigen JWE-Wrapper verpacken. Der Server entschlüsselt das JWE, vertraut der inneren Nutzlast und gewährt Zugriff.
pac4j-Versionen vor 4.5.9, 5.7.9 und 6.3.3.ROLE_ADMIN).Das bereitgestellte Skript CVE-2026-29000.py automatisiert die folgenden Schritte:
/api/auth/jwks ab.alg: none und administrativen Claims.Stelle sicher, dass die erforderlichen Python-Bibliotheken installiert sind:
pip install requests jwcrypto
python3 CVE-2026-29000.py <TARGET_URL>
Beispiel:
python3 CVE-2026-29000.py http://vulnerable-app.local:8080
Um diese Schwachstelle zu entschärfen, ergreife folgende Maßnahmen:
pac4j-jwt sofort auf Version 4.5.9, 5.7.9 oder 6.3.3 (oder höher).JwtAuthenticator-Konfiguration explizit eine gültige Signatur verlangt und den Algorithmus none nicht zulässt.Erstellt von: Cipher1x1