CVE-2026-56664

ZITADEL: Missing Token Lifecyle Validation (`exp` and `iat`) in JWT IdP Provider

Published Jul 10, 2026 CVSS 3.1 · 4.2 Medium EPSS < 1% KEV · Not listed
Description
ZITADEL is an open source identity management platform. Prior to 3.4.12 and 4.15.2, ZITADEL's external JWT Identity Provider validation in internal/idp/providers/jwt/session.go skips the maximum token age freshness check when an incoming token omits the iat claim, allowing arbitrarily old tokens from a trusted issuer to pass authentication. This issue is fixed in versions 3.4.12 and 4.15.2.

Analysis

AI-generated

Technical impact

ZITADEL’s external JWT identity provider validation mistakenly skips checking the token’s iat claim when it is omitted, thereby allowing an attacker to replay an arbitrarily old token issued by a trusted authority. This flaw permits the reuse of stale credentials and can result in unauthorized access to protected resources, effectively bypassing authentication and compromising the confidentiality and integrity of the system. The weakness is classified under CWE‑613, Failure to Verify Authorization.

Affected Systems

The affected vendor product is ZITADEL. All releases of the 3.x line prior to version 3.4.12 and all releases of the 4.x line prior to version 4.15.2 are susceptible. No additional sub‑versions are listed, so any instance running a pre‑3.4.12 or pre‑4.15.2 build should be considered vulnerable.

Risk and Exploitability

The CVSS score of 4.2 indicates a moderate impact. The EPSS score of < 1% suggests a very low likelihood of exploitation. The vulnerability is not listed in the CISA KEV catalog. Exploitation requires an attacker to obtain or craft a stale JWT from a trusted issuer that lacks the iat claim; once in hand, the attacker can present it to ZITADEL over the network, leading to authentication without privileged local access. Based on the description, it is inferred that the attack vector is remote and does not require prior system compromise. While the risk is moderate, operators of older versions should prioritize remediation.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade ZITADEL to at least version 3.4.12 for the 3.x line or to 4.15.2 for the 4.x line.
  • If an upgrade is not immediately possible, disable or remove the affected external JWT IdP provider until the patch is applied.
  • After upgrading or disabling the provider, audit all configured IdPs to verify that iat and exp claims are enforced, and rotate any tokens that may have been compromised.

Generated by OpenCVE AI on August 1, 2026 at 12:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Github GHSA Github GHSA GHSA-wxg7-w2v3-w38g ZITADEL: Missing Token Lifecyle Validation (`exp` and `iat`) in JWT IdP Provider
History
Type Values Removed Values Added
First Time appeared Zitadel
Zitadel zitadel
Vendors & Products Zitadel
Zitadel zitadel
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description ZITADEL is an open source identity management platform. Prior to 3.4.12 and 4.15.2, ZITADEL's external JWT Identity Provider validation in internal/idp/providers/jwt/session.go skips the maximum token age freshness check when an incoming token omits the iat claim, allowing arbitrarily old tokens from a trusted issuer to pass authentication. This issue is fixed in versions 3.4.12 and 4.15.2.
Title ZITADEL: Missing Token Lifecyle Validation (`exp` and `iat`) in JWT IdP Provider
Weaknesses CWE-613
References
Metrics cvssV3_1

{'score': 4.2, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:U/C:L/I:L/A:N'}

Weaknesses
  • CWE-613

    Insufficient Session Expiration

Sources

Status
PUBLISHED
Assigner
GitHub_M
Published
Updated
Jul 10, 2026, 6:01 PM
Reserved
Jun 22, 2026, 4:39 PM
Status
Deferred
Published
Jul 10, 2026, 6:16 PM
Modified
Jul 10, 2026, 7:17 PM