ZITADEL
CVE-2025-67717
MEDIUM
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessAuthenticate with low-privilege account
-
ExploitCall User Service ListUsers endpoint
-
ExecutionRead totalResult count field
-
ImpactInfer instance user population size
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V14 - Data Protection System info exposure prevention
|
| Exploitation Conditions | Exploitation requires a valid authenticated session (any user, regardless of granted read permissions) on a ZITADEL instance running an affected version (2.44.0-2.71.19, 3.0.0-rc.1-3.4.4, or 4.0.0-rc.1-4.7.1); the attacker invokes the User Service ListUsers query and reads the totalResult field. The flaw is present in the default configuration - the specific limiting/mitigating factor is the permissionCheckV2 feature, which when ENABLED acts as a workaround that correctly scopes totalResult to only users the caller can read, so instances with permissionCheckV2 active are not exposed. Exploitation is otherwise limited only by the need for authentication and yields aggregate count data, not individual user records or PII. |
| Impact | This is a genuinely low-priority, low-real-risk issue despite a MEDIUM 5.3 CVSS, and the signals are mutually consistent rather than conflicting. The CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N) and the single low confidentiality impact (VC:L, VI:N, VA:N, no scope change) correctly describe a minor information-disclosure flaw: a network-reachable but AUTHENTICATED (PR:L) request that leaks only an aggregate count, not individual records or PII. EPSS reinforces this - 0.22% probability at the 12th percentile indicates exploitation is very unlikely to be attempted at scale. There is no CISA KEV listing and no public exploit code, so the honest status is 'no public exploit identified at time of analysis.' No SSVC decision data was provided in the input. One nuance to verify with the vendor: the NVD description states the count is disclosed 'to authenticated users,' while the GHSA advisory summary line says 'unauthorized users' before its own body clarifies 'any authenticated user, regardless of their specific permissions' - the authoritative reading, consistent with PR:L, is that a valid but under-privileged authenticated session is required. The real risk is confined to the fact that an authenticated low-permission principal can learn the total user count of an instance, which is reconnaissance value only. |
| Exploit ScenarioDerived | An authenticated but low-privileged user (or a tenant member who should not see instance-wide data) calls the ZITADEL User Service ListUsers endpoint and reads the totalResult field in the response, learning the total number of users provisioned in the instance even though they lack read permission over those users. No public proof-of-concept exists; because the vector is network-reachable with low complexity and no user interaction, any valid session token is sufficient to reproduce it against a default configuration. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 14, 2026
Authenticated users on affected ZITADEL instances can retrieve the total number of users in the instance through the User Service ListUsers query, because the response's totalResult field is populated without applying per-caller read permissions. Any valid session - including a low-privilege human or machine user with no granted read rights - is sufficient, making this an unauthenticated-data-free but still permission-bypassing aggregate information disclosure (CWE-497). Affected ranges are 2.44.0 through 2.71.19, 3.0.0-rc.1 through 3.4.4, and 4.0.0-rc.1 through 4.7.1; fixes exist in 3.4.5 and 4.7.2. EPSS is only 0.22% (12th percentile), there is no CISA KEV listing, and no public exploit identified at time of analysis, so despite a MEDIUM 5.3 CVSS 4.0 score this is a low-priority issue that leaks a user count rather than any individual record or PII.
RemediationAI
Vendor-released patch: upgrade to ZITADEL 3.4.5 (covers the 3.x line and, per the advisory, the 2.x line as well - https://github.com/zitadel/zitadel/releases/tag/v3.4.5) or 4.7.2 for the 4.x line (https://github.com/zitadel/zitadel/releases/tag/v4.7.2); the fix itself is upstream commit 826039c6208fe71df57b3a94c982b5ac5b0af12c, referenced from https://github.com/zitadel/zitadel/security/advisories/GHSA-f4cf-9rvr-2rcx. Note that the advisory does not publish a dedicated 2.x patch release, so 2.x operators must either upgrade onto 3.4.5 or apply the workaround. Where a version upgrade is not immediately possible, enable the permissionCheckV2 feature flag on the instance, which causes totalResult to be scoped to users the caller can read; the trade-off is that this changes the permission-evaluation code path instance-wide for all user queries, so it should be validated in staging for latency or behavioral regressions in authorization-sensitive workflows before being rolled out, and it does not address any other latent issue in the affected release. Because exploitation requires only a valid low-privilege authenticated session on the default configuration, throttling or disabling the public User Service ListUsers endpoint for untrusted tenants can reduce exposure as a temporary measure, at the cost of breaking legitimate directory and admin UI user-listing functionality. No public exploit code or active exploitation has been reported, so remediation can be folded into routine patch cycles rather than treated as an emergency.
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in go
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
ZITADEL is an open-source identity infrastructure platform built around a Go-based User Service exposed over gRPC and REST, with the CPE data (cpe:2.3:a:zitadel:zitadel) confirming the core server product as the affected asset. The root cause class is CWE-497, Exposure of Sensitive System Information to an Unauthorized Control Sphere: the ListUsers query returns a ListDetails object whose TotalResult field reflects the unfiltered instance-wide user count instead of the count of users the caller is permitted to read. The permission-check pipeline used by the list endpoint therefore applies filtering to the returned Result set but not to the aggregate TotalResult metadata, so a caller with no read permissions still observes the true instance total (a human user with no permissions sees TotalResult: 1 for itself while broader queries expose the instance-wide figure). The upstream fix, commit 826039c6208fe71df57b3a94c982b5ac5b0af12c, reworks the user v2 query integration tests and returns a TotalResult scoped to only those users the querying principal has read permission for. An alternative code path, the permissionCheckV2 feature flag, already performs this corrected scoping and is the documented workaround for instances that cannot upgrade.
Know when Zitadel gets its next vulnerability
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:L/VI:N/VA:N/SC:N/SI:N/SA:N
Network-reachable API callable by any authenticated session (PR:L, AC:L), leaking only an aggregate count so C:L with no integrity or availability impact and no scope change.
Primary rating from Vendor (github).
CVSS VectorVendor: github
DescriptionCVE.org
ZITADEL is an open-source identity infrastructure tool. Versions 2.44.0 through 3.4.4 and 4.0.0-rc.1 through 4.7.1 disclose the total number of instance users to authenticated users, regardless of their specific permissions. While this does not leak individual user data or PII, disclosing the total user count via the totalResult field constitutes an information disclosure vulnerability that may be sensitive in certain contexts. This issue is fixed in versions 3.4.5 and 4.7.2.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
Affected Products (CPE)CVE.org
Zitadel is open-source identity infrastructure software. Rated critical severity (CVSS 9.1), this vulnerability is remot
ZITADEL is an identity infrastructure system. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable
Authentication bypass in ZITADEL 4.x before 4.19.2 and 3.x through 3.4.15 lets an authenticated attacker with organizati
Account takeover in ZITADEL affects instances running 3.0.0 through 3.4.15 and 4.0.0 before 4.17.3: an unauthenticated r
Cross-organization account takeover in ZITADEL 3.x before 3.4.15 and 4.x before 4.17.1 allows an authenticated attacker
Stored XSS in ZITADEL identity management platform versions 4.0.0 to 4.11.1 allows unauthenticated attackers to inject p
Account pre-hijacking in ZITADEL lets an unauthenticated remote attacker create a user record already bound to a victim'
Authentication bypass in ZITADEL's Login V2 UI (versions 3.0.0 through 4.19.1) allows unauthenticated attackers to take
Remote account takeover in ZITADEL versions before 4.17.1 allows unauthenticated attackers to compromise MFA-protected a
The open-source identity infrastructure software Zitadel allows administrators to disable the user self-registration. Ra
The open-source identity infrastructure software Zitadel allows administrators to disable the user self-registration. Ra
Unauthenticated username-change in ZITADEL's hosted Login V1 UI lets a remote attacker rename any active human account -
NVD
CVE.org
EPSS
GitHub
Exploit-DB