CVE-2026-56665: ZITADEL insufficient session expiration in JWT Identity Provider

CVE-2026-56665 · Severity: medium · CVSS 4.2 · Published 2026-07-10

ZITADEL is an open-source identity and access management platform that authenticates users via external JWT identity providers. The platform's JWT validation logic fails to reject tokens missing the required expiration claim, allowing attackers to use forged tokens that never expire. This breaks session lifecycle management and enables persistent unauthorized access to applications relying on ZITADEL for authentication.

Technologies: github.com/zitadel/zitadel (Go), ZITADEL. Vendors: Go, ZITADEL.

Quick answers

Is CVE-2026-56665 exploited in the wild?
No. Junglewise Threat Intelligence has no report of CVE-2026-56665 being exploited in the wild.
How severe is CVE-2026-56665?
Medium severity, with a CVSS score of 4.2, published 10 July 2026.
Which products and versions are affected?
github.com/zitadel/zitadel (Go) SEMVER:introduced=0, SEMVER:introduced=4.0.0-rc.1,fixed=4.15.2; ZITADEL 3.0.0-rc.1 through 3.4.11, 4.0.0-rc.1 through 4.15.1, 4.0.0 through 4.15.1, 3.0.0 through 3.4.11.
Is there a fix for CVE-2026-56665?
Yes. github.com/zitadel/zitadel (Go): upgrade to 4.15.2 or later. Junglewise finds every place you run it, drafts the upgrade and applies it once you approve.
How is CVE-2026-56665 attacked?
It is attacked over the network, in a hosted service.
Am I affected by CVE-2026-56665?
Check whether you run github.com/zitadel/zitadel (Go) or ZITADEL at an affected version. Junglewise does that check for you around the clock: connect your code, cloud and domains, and it matches new vulnerabilities like this one against what you actually run and tells you when one reaches you.

How to fix

  • github.com/zitadel/zitadel (Go): upgrade to 4.15.2 or later
    go get github.com/zitadel/zitadel@v4.15.2

Technical details

The vulnerability exists in ZITADEL's JWT IdP provider validation pipeline, where the absence of the `exp` (expiration) claim in an incoming JWT results in the expiration check being silently skipped rather than explicitly rejected. This violates the OIDC Core 1.0 specification, which mandates strict validation of token lifecycle constraints. The flaw affects versions 4.0.0–4.15.1 and 3.0.0–3.4.11. An attacker who controls or compromises an upstream identity provider can issue JWTs without an expiration claim; ZITADEL will accept these indefinitely, granting persistent access. The attack requires low privileges (as an external IdP) and network access but no user interaction. Patches are available in versions 4.15.2 and 3.4.12, which now explicitly reject tokens lacking the `exp` claim.

Affected products

  • ZITADEL ZITADEL 4.0.0 through 4.15.1, 3.0.0 through 3.4.11

Identifiers

  • CVE-2026-56665
  • GHSA-v77h-2w3m-94hx
  • GO-2026-6469

Timeline

  • 2026-06-22: disclosed: Vulnerability published on GitHub Advisory Database
  • 2026-06-22: patched: Patches released: v4.15.2 and v3.4.12
  • 2026-09-11: advisory: Advisory published in GitHub; separated from GHSA-wxg7-w2v3-w38g for CVE mapping purposes

References

This page as Markdown. Free to reuse under CC BY 4.0 with a link back.