Read the docs
TI-2026-22191 Aliases CVE-2026-27840GHSA-6mq3-xmgp-pjm5

ZITADEL's truncated opaque tokens are still valid

Priority LOW 19CWE-302Published · Updated

Key facts

Attack vector
Network
Privileges required
None
User interaction
Required
Attack complexity
Low
Impact type
—
Confidentiality · integrity · availability
None · Low · None
Fix status
Fixed

Attack profile from CVSS 3.1 · CNA. Fix status from CNA and GitHub.

Summary

ZITADEL is an open source identity management platform. Starting in version 2.31.0 and prior to versions 3.4.7 and 4.11.0, opaque OIDC access tokens in the v2 format truncated to 80 characters are still considered valid. Zitadel uses a symmetric AES encryption for opaque tokens. The cleartext payload is a concatenation of a couple of identifiers, such as a token ID and user ID. Internally Zitadel has 2 different versions of token payloads. v1 tokens are no longer created, but are still verified as to not invalidate existing session after upgrade. The cleartext payload has a format of `<token_id>:<user_id>`. v2 tokens distinguished further where the `token_id` is of the format `v2_<oidc_session_id>-at_<access_token_id>`. V1 token authZ/N session data is retrieved from the database using the (simple) `token_id` value and `user_id` value. The `user_id` (called `subject` in some parts of our code) was used as being the trusted user ID. V2 token authZ/N session data is retrieved from the database using the `oidc_session_id` and `access_token_id` and in this case the `user_id` from the token is ignored and taken from the session data in the database. By truncating the token to 80 chars, the user_id is now missing from the cleartext of the v2 token. The back-end still accepts this for above reasons. This issue is not considered exploitable, but may look awkward when reproduced. The patch in versions 4.11.0 and 3.4.7 resolves the issue by verifying the `user_id` from the token against the session data from the database. No known workarounds are available.

Why it matters now

Exploitation None reported CISA SSVC · not in CISA KEV
EPSS 0.00159 5th percentileScored 2026-11-07
Fix Fixed zitadel (zitadel): 4.11.0, 3.4.7github.com/zitadel/zitadel (Go): 4.11.0, 3.4.7, 1.80.0-v2.20.0.20260216092519-feab8e1fa371

SSVC decision points

CISA ADP · SSVC 2.0.3

Exploitation
None
Automatable
No
Technical impact
Partial

The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.

Affected products

VendorProductAffected versionsFixed inStatusSource
zitadelzitadel4.0.0 to before 4.11.0; 3.0.0 to before 3.4.7; 2.31.0 – 2.71.194.11.0, 3.4.7Patch availableCNA
—github.com/zitadel/zitadel (Go)4.0.0 to before 4.11.04.11.0Patch availableGHSA-6mq3-xmgp-pjm5
—github.com/zitadel/zitadel (Go)3.0.0 to before 3.4.73.4.7Patch availableGHSA-6mq3-xmgp-pjm5
—github.com/zitadel/zitadel (Go)2.31.0 – 2.71.19—No fix listedGHSA-6mq3-xmgp-pjm5
—github.com/zitadel/zitadel (Go)before 1.80.0-v2.20.0.20260216092519-feab8e1fa3711.80.0-v2.20.0.20260216092519-feab8e1fa371Patch availableGHSA-6mq3-xmgp-pjm5
  • zitadel Vendorzitadel Affected 4.0.0 to before 4.11.0; 3.0.0 to before 3.4.7; 2.31.0 – 2.71.19 Fixed in 4.11.0, 3.4.7 Patch available CNA
  • github.com/zitadel/zitadel (Go) Vendor— Affected 4.0.0 to before 4.11.0 Fixed in 4.11.0 Patch available GHSA-6mq3-xmgp-pjm5
  • github.com/zitadel/zitadel (Go) Vendor— Affected 3.0.0 to before 3.4.7 Fixed in 3.4.7 Patch available GHSA-6mq3-xmgp-pjm5
  • github.com/zitadel/zitadel (Go) Vendor— Affected 2.31.0 – 2.71.19 Fixed in — No fix listed GHSA-6mq3-xmgp-pjm5
  • github.com/zitadel/zitadel (Go) Vendor— Affected before 1.80.0-v2.20.0.20260216092519-feab8e1fa371 Fixed in 1.80.0-v2.20.0.20260216092519-feab8e1fa371 Patch available GHSA-6mq3-xmgp-pjm5

CPE configurations NVD · 1

CPEVersionsRoleVendor
cpe:2.3:a:zitadel:zitadel:*:*:*:*:*:*:*:*2.31.0 – 2.71.19; 3.0.0 to before 3.4.7; 4.0.0 to before 4.11.0Vulnerablezitadel
  • cpe:2.3:a:zitadel:zitadel:*:*:*:*:*:*:*:* Versions 2.31.0 – 2.71.19; 3.0.0 to before 3.4.7; 4.0.0 to before 4.11.0 Vulnerable ·zitadel

Remediation

  • Fix · CNA zitadel (zitadel) Fixed in 4.11.0, 3.4.7
  • Fix · GHSA-6mq3-xmgp-pjm5 github.com/zitadel/zitadel (Go) Fixed in 4.11.0 Advisory →
  • Fix · GHSA-6mq3-xmgp-pjm5 github.com/zitadel/zitadel (Go) Fixed in 3.4.7 Advisory →
  • Fix · GHSA-6mq3-xmgp-pjm5 github.com/zitadel/zitadel (Go) Fixed in 1.80.0-v2.20.0.20260216092519-feab8e1fa371 Advisory →

Timeline

  1. 2026-10-02 Threatist record created from CVE-2026-27840
  2. 2026-10-03 Alias added: GHSA-6mq3-xmgp-pjm5

References

  • TI-2024-26607 ZITADEL Vulnerable to Session Information Leakage CVSS 3.1MEDIUM 6.5
  • TI-2025-41253 ZITADEL Vulnerable to Unauthenticated Full-Read SSRF via V2 Login CVSS 3.1CRITICAL 9.3
  • TI-2025-39554 Zitadel Bypass Second Authentication Factor CVSS 4.0HIGH 8.7
  • TI-2024-33224 Zitadel User Registration Bypass Vulnerability CVSS 3.1HIGH 7.5
  • TI-2024-31388 Service Users Deactivation not Working in Zitadel CVSS 3.1HIGH 8.1
  • TI-2026-23310 ZITADEL: Bypassing Zitadel Login Behavior and Security Policy in Login V2 CVSS 3.1HIGH 8.2
See all 46 →

Sources