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

Source: https://junglewise.ai/threats/cve-2026-56665-zitadel-insufficient-session-expiration-in-jwt-identity-provider  
Publisher: Junglewise Threat Intelligence, https://junglewise.ai/threats  
Published: 2026-07-10. Updated: 2026-09-25  
License: CC BY 4.0 with a link back

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)](https://junglewise.ai/threats/technologies/github-com-zitadel-zitadel), [ZITADEL](https://junglewise.ai/threats/technologies/zitadel). Vendors: [Go](https://junglewise.ai/threats/vendors/go), [ZITADEL](https://junglewise.ai/threats/vendors/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

  ```sh
  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

- [https://api.github.com/users/Android-Login-Analysis](https://api.github.com/users/Android-Login-Analysis)
- [https://github.com/Android-Login-Analysis](https://github.com/Android-Login-Analysis)
- [https://api.github.com/users/Android-Login-Analysis/gists%7B/gist_id%7D](https://api.github.com/users/Android-Login-Analysis/gists%7B/gist_id%7D)
- [https://api.github.com/users/Android-Login-Analysis/repos](https://api.github.com/users/Android-Login-Analysis/repos)
- [https://avatars.githubusercontent.com/u/43461385?v=4](https://avatars.githubusercontent.com/u/43461385?v=4)
- [https://api.github.com/users/Android-Login-Analysis/events%7B/privacy%7D](https://api.github.com/users/Android-Login-Analysis/events%7B/privacy%7D)

## Related threats

- [ZITADEL missing authorization in Login V2 device authorization](https://junglewise.ai/threats/cve-2026-119129-zitadel-3-0-0-through-3-4-15-and-4-0-0-before-4-19-5-contains-a)
- [ZITADEL authentication bypass in Login V2 UI](https://junglewise.ai/threats/cve-2026-119128-zitadel-4-0-0-before-4-19-5-contains-an-authentication-bypass)
- [ZITADEL Login V2 host header injection in password reset](https://junglewise.ai/threats/cve-2026-119127-zitadel-4-0-0-before-4-19-5-contains-a-host-header-injection)
- [ZITADEL privilege escalation in OIDC token exchange](https://junglewise.ai/threats/cve-2026-109374-zitadel-3-0-0-before-4-19-2-contains-a-privilege-escalation)
- [ZITADEL authentication bypass in Login V2 UI](https://junglewise.ai/threats/cve-2026-109373-zitadel-3-0-0-before-4-19-2-contains-an-authentication-bypass)
