Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
CVE-2026-29000-pac4j-jwt — CVE-2026-29000 PoC: pac4j-jwt PlainJWT-in-JWE-Authentifizierungsumgehung. | Kitploit
Tools/GitHubGitHub/strikoder-premium/cve-2026-29000-pac4j-jwt
Authentifizierung & AutorisierungSchwachstellenanalyseExploitationWebanwendungs-ExploitationPenetrationstests
GitHubstrikoder-premium/cve-2026-29000-pac4j-jwt

CVE-2026-29000-pac4j-jwt

CVE-2026-29000 PoC: pac4j-jwt PlainJWT-in-JWE-Authentifizierungsumgehung.

Repository anzeigen

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
3vor 3 MonatenNoch nicht geprüft

pac4j-jwe-forge (CVE-2026-29000)

Proof-of-Concept für CVE-2026-29000. Ziel sind pac4j-jwt-Versionen vor 4.5.9, 5.7.9 und 6.3.3.

Die Schwachstelle ist einfach: Die Bibliothek akzeptiert einen PlainJWT (unsigniert, alg=none), solange er in ein gültiges JWE eingebettet ist. Da der Server seinen RSA-öffentlichen Schlüssel über einen JWKS-Endpunkt bereitstellt, kann jeder einen beliebigen unsignierten JWT in ein JWE verschlüsseln, dem der Server vertraut – einschließlich eines mit ROLE_ADMIN.


So funktioniert es

  1. RSA-öffentlichen Schlüssel vom JWKS-Endpunkt des Ziels abrufen
  2. Einen unsignierten JWT (alg=none) mit beliebigen Claims erstellen
  3. Mit dem öffentlichen Schlüssel des Servers verschlüsseln
  4. Das resultierende JWE als Bearer-Token senden

Der Server entschlüsselt es, vertraut den Claims darin und prüft nie, ob der innere JWT unsigniert ist.


Voraussetzungen

Python 3.13+ mit uv oder Abhängigkeiten manuell installieren:

root@kitploit:~
pip install jwcrypto requests

Verwendung

root@kitploit:~
[uv run / python3] CVE-2026-29000.py --url <base_url> --jwks <jwks_path> [optionen]

Erforderlich:

flagbeschreibung
--urlBasis-URL des Ziels, z. B. http://10.10.11.x:8080
--jwksPfad oder vollständige URL zum JWKS-Endpunkt

Optional:

Beispiele:

root@kitploit:~
python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks

python3 exploit.py --url http://10.10.11.x:8080 --jwks /api/auth/jwks --user john --role ROLE_ADMIN

python3 exploit.py --url http://10.10.11.x:8080 --jwks /.well-known/jwks.json --enc A128GCM

Den JWKS-Endpunkt finden

Nicht immer offensichtlich. Gute Orte zum Suchen:

  • /robots.txt – listet oft eingeschränkte oder interne Pfade auf
  • /api/auth/jwks
  • /.well-known/jwks.json
  • /.well-known/openid-configuration

Das richtige alg/enc finden

Wenn das Token abgelehnt wird, erwartet die App möglicherweise einen bestimmten Verschlüsselungsalgorithmus. Prüfe /static/js/app.js auf etwas wie:

root@kitploit:~
const JWE_ALG = "RSA-OAEP-256";
const JWE_ENC = "A128GCM";

Dann erneut mit --enc A128GCM ausführen.

Die Token-Speichermethode ist dort normalerweise auch enthalten:

root@kitploit:~
class TokenManager {
    static getToken() {
        return sessionStorage.getItem('auth_token');
    }
}

Wenn es sessionStorage ist, tausche das Token direkt in den DevTools unter Anwendung > Sitzungsspeicher aus.


Betroffene Versionen

  • pac4j-jwt < 4.5.9
  • pac4j-jwt < 5.7.9
  • pac4j-jwt < 6.3.3

Behoben in 4.5.9, 5.7.9 und 6.3.3.

Tool herunterladen
flagstandardbeschreibung
--useradminWert für den sub-Claim
--roleROLE_ADMINZu fälschende Rolle (ROLE_ADMIN, ROLE_MANAGER, ROLE_USER)
--issuerprincipal-platformWert für den iss-Claim
--encA256GCMJWE-Inhaltsverschlüsselung (A256GCM oder A128GCM)