ZITADEL: Missing Token Expiration (`exp`) Validation in JWT IdP Provider
Beschreibung
Eine Token-Lifecycle-Validierungslücke wurde in ZITADELs externer JWT Identity Provider (IdP)-Implementierung entdeckt: Wenn eine eingehende JWT den "Exp" -Anspruch vollständig auslässt, wird der Ablaufblock stillschweigend übersprungen und nicht abgelehnt. Das Token wird als für immer gültig behandelt. Gemäß der OIDC Core 1.0-Spezifikation müssen Identity-Token-Validierungs-Pipelines den Sitzungsablauf streng behandeln und erzwingen. ZITADELs stille Akzeptanz von Token, die diese zeitlichen Einschränkungen vermissen, beeinträchtigt die Integrität der Sitzung. Ein Angreifer, der im Besitz eines Tokens ist, dem ein "Exp" -Anspruch fehlt, besitzt einen dauerhaften Anmeldenachweis ohne automatisches Ablauf- oder Widerrufsfenster. ### Betroffene Versionen Systeme mit einer der folgenden Versionen sind betroffen: * **4.x**: `4.0.0` bis `4.15.1` (einschließlich RC-Versionen) * **3.x**: `3.0.0` bis `3.4.11` (einschließlich RC-Versionen) ### Patches Die Schwachstelle wurde in den neuesten Releases behoben. ZITADEL lehnt nun ausdrücklich Token ab, denen ein `exp`-Anspruch fehlt. * **4.x**: Upgrade auf $\ge$ [4.15.2](https://github.com/zitadel/zitadel/releases/tag/v4.15.2) * **3.x**: Upgrade auf $\ge$ [3.4.12](https://github.com/zitadel/zitadel/releases/tag/v3.4.12) ### Workarounds Die empfohlene Lösung ist das Update von ZITADEL auf eine gepatchte Version. Wenn ein sofortiges Upgrade nicht möglich ist, stellen Sie auf der vorgelagerten Identity Provider-Ebene sicher, dass ein externer IdP den "Exp" -Anspruch ausdrücklich in allen signierten JWTs enthält. ### Veröffentlichungsnotiz Diese Frage wurde ursprünglich als Teil eines einheitlichen Sicherheitsbulletins unter [GHSA-wxg7-w2v3-w38g] (https://github.com/zitadel/zitadel/security/advisories/GHSA-wxg7-w2v3-w38g) veröffentlicht. Um die Vorschriften der CVE Numbering Authority bezüglich unabhängig behebbarer Logikfehler zu erfüllen, wurde die fehlende Token-Ablaufvalidierung ("exp") in diesen separaten Tracking-Eintrag verschoben, so dass eine eindeutige CVE-ID korrekt zugeordnet werden kann. ### Fragen Wenn es Fragen oder Kommentare zu dieser Empfehlung gibt, senden Sie eine E-Mail an [security@zitadel.com](mailto:security@zitadel.com) ### Credits ZITADEL danke [Android-Login-Analyse](https://github.com/Android-Login-Analyse), Jason Zhou und [Pedro Giglioti](https://github.com/Punisher100) für die Meldung dieser Sicherheitslücke.
Quellen & weiterführende Informationen
Hier werden ausschließlich tatsächlich zu dieser Schwachstelle gespeicherte Quellenbelege angezeigt.
Was ist zur Behebung zu tun?
Auf eine behobene Version aktualisieren: 4.15.2, 3.4.12.
Empfohlene Schritte
- Betroffene Systeme identifizieren: github.com/zitadel/zitadel.
- Exposition prüfen: Internet-Erreichbarkeit, Admin-Oberflächen, VPN, Mail- oder Webdienste.
- Update/Rollout auf behobene Version vorbereiten und priorisiert einspielen.
- Nacharbeiten dokumentieren: betroffene Assets, Maßnahme, Zeitpunkt, Restrestrisiko.
Übergangsmaßnahmen
- Zugriff auf betroffene Dienste auf vertrauenswürdige Netze einschränken.
- WAF/IDS/EDR-Regeln und Hersteller-IOCs aktivieren, sofern verfügbar.
- Nicht benötigte Funktionen, Plugins oder Dienste temporär deaktivieren.
- Administrative Zugänge besonders absichern: MFA, Passwortrotation, Session-Invalidierung.