Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessStart device authorization with attacker's user code
-
DeliverySend victim link to Login V2 signed-in page
-
ExploitVictim's active session auto-approves device
-
ExecutionAttacker device receives victim's tokens
-
ImpactUse tokens for API/admin access as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization checks on every request
MITRE ATT&CK
1 technique across 1 tactic: Privilege Escalation The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | The instance must host at least one application configured with the OAuth 2.0 Device Code grant type - instances without such an application cannot start a device authorization and are not affected. For the one-click vector, the victim must have an active hosted Login V2 session in the same browser and must open the attacker-supplied link (passive user interaction, UI:P); users who sign in only through the hosted Login V1 UI have no reusable Login V2 session and are not affected by this vector. The separate API vector via POST /v2/oidc/device_authorization/{device_authorization_id} bypasses the project access settings 'Only authorized users can authenticate' and 'Authentication is restricted to users from organizations that have been granted access to this project', and also affects custom login UIs built on the OIDC service API; both vectors remain within a single instance. The attacker cannot read the victim's password or second factors and cannot approve a device without the victim opening the link in a browser with an active Login V2 session. No configuration fully closes the gap on unpatched versions; per the vendor, upgrading is the only complete fix, and if the Device Authorization flow is unused, removing the Device Code grant type from all applications prevents both vectors. |
| Impact | This is a genuine high-priority issue for ZITADEL operators, not a high-CVSS-but-low-real-risk case. The supplied CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:N/UI:P) describes a network-reachable flaw of low complexity that an unauthenticated attacker can trigger, requiring only that the victim open a single link (UI:P / passive user interaction). The vulnerable-system impact is high for both confidentiality and integrity (VC:H/VI:H) because the attacker receives the victim's access, ID and optional refresh tokens, and - if the ZITADEL project scope is requested against an administrator - gains administrative control of the organization or instance. The vuln.today Decision label is 'this_week', and the report originates from VulnCheck, indicating elevated but not emergency urgency; teams should remediate within days. No CISA KEV listing is present in the input, and no EPSS score was provided, so widespread-exploitation probability cannot be quantified from the data. No verified working exploit code is referenced - only the vendor GHSA advisory and a VulnCheck advisory. The practical limiter is real: the one-click vector only works against a victim who currently holds an active hosted Login V2 session in the same browser, and only when an application with the Device Code grant type exists on the instance. The API vector (bypassing project access settings) does not need the one-click session and also affects custom login UIs built on the OIDC service API. |
| Exploit ScenarioDerived | An attacker initiates an OAuth 2.0 device authorization for an application that has the Device Code grant type, then sends a signed-in ZITADEL user a link to the Login V2 signed-in page carrying the attacker's user code. When the victim - who has an active Login V2 session - opens the link, the device is approved with no consent prompt and no user-code entry, and the attacker's device receives the victim's tokens with the requested scopes; against an admin this yields organization- or instance-wide control. No verified public exploit code is referenced, but the attack is low-complexity and requires only passive victim interaction. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 29, 2026
Missing authorization in ZITADEL's hosted Login V2 UI allows one-click account takeover: an attacker who starts an OAuth 2.0 Device Authorization for any application with the Device Code grant type can send a signed-in victim a single link carrying the attacker's user code, and the victim's browser approves the attacker's device without consent or entering a code, delivering the victim's access, ID and (if requested) refresh tokens to the attacker's device. ZITADEL instances running 4.0.0 through 4.19.4 and 3.0.0 through 3.4.15 are affected, and unauthenticated remote attackers can also reach the same gap through the OIDC service API endpoint POST /v2/oidc/device_authorization/{device_authorization_id}, which skips the 'Only authorized users can authenticate' and project-grant restrictions that normal sign-in enforces. The victim must open the link while holding an active Login V2 session in that browser (passive user interaction), the attacker cannot read the victim's password or second factors, and instances with no Device Code application, or users who only use hosted Login V1, are not affected; no public exploit code was identified at time of analysis, and the vendor rates this a genuine high-priority issue rather than a high-score/low-risk case.
RemediationAI
Upgrade ZITADEL to 4.19.5 or later (https://github.com/zitadel/zitadel/releases/tag/v4.19.5); the patch requires the user to enter the user code in the same browser and confirm it with an explicit Allow on a consent screen, and makes the device-authorization API enforce the project access settings applied during regular sign-in. There is no fixed 3.x build - that line went end-of-life on 2026-08-31 - so affected 3.x deployments must upgrade to a patched 4.x release, which means planning the 3.x-to-4.x migration rather than applying a minor patch. Per the vendor, upgrading is the only complete fix and no configuration fully closes the gap on unpatched versions; the one practical mitigation is to remove the Device Code grant type from every application if the Device Authorization flow is not in use, which prevents both the one-click and API vectors at the cost of breaking legitimate device-flow clients. Because the API vector also affects custom login UIs, review any custom login implementation calling POST /v2/oidc/device_authorization/{device_authorization_id}, and inventory applications for the Device Code grant type and confirm the project access settings ('Only authorized users can authenticate' and organization project grants) are configured as intended once patched. Full details are in the vendor advisory GHSA-qj3q-235g-qr6w and the VulnCheck advisory at https://www.vulncheck.com/advisories/zitadel-3.0.0-through-3.4.15-and-4.0.0-before-4.19.5-account-takeover-via-device-authorization-approval.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
The root cause is CWE-862 (Missing Authorization) in ZITADEL's OAuth 2.0 Device Authorization flow (the OAuth 2.0 Device Code grant, RFC 8628-style). Login V2 approved a pending device authorization as soon as a signed-in browser opened its approval page for that request, binding the authorization to whichever Login V2 session the browser already carried, without verifying that the user intended to approve that device or that the user was permitted to access the target application. The same missing authorization was reachable from the OIDC service API that login UIs call (POST /v2/oidc/device_authorization/{device_authorization_id}), which additionally failed to enforce the project access settings 'Only authorized users can authenticate' and 'Authentication is restricted to users from organizations that have been granted access to this project'. Depending on the scopes requested, the issued tokens can be used against the ZITADEL APIs with the victim's full permissions - administrative control over the organization or instance when the victim is an administrator. CPE data identifies the affected package as zitadel:zitadel across the 3.x and 4.x release lines. The fix adds an explicit two-step flow: the user must enter the user code in the same browser and confirm it with an explicit Allow on a consent screen showing the account, application and user code, and the API path now enforces the same project access settings as regular sign-in. The vendor advisory also classifies the flaw under CWE-352 in addition to CWE-862. Both vectors remain confined to a single instance.
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:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N
Network, low-complexity, unauthenticated attacker; victim must click a link (UI:R); tokens expose confidentiality and allow acting as the user (C:H/I:H), no availability impact, single-instance scope.
Primary rating from Vendor (VulnCheck).
CVSS VectorVendor: VulnCheck
Lifecycle Timeline
2DescriptionCVE.org
ZITADEL 3.0.0 through 3.4.15 and 4.0.0 before 4.19.5 contains a missing authorization vulnerability in Login V2 that allows attackers to approve OAuth 2.0 device authorizations using a victim's existing session without consent. Attackers can send a signed-in user a link carrying the attacker's user code to obtain the victim's tokens, and can bypass project access settings via the OIDC device authorization API.
Technical POC Analysis
CWE-862 (Missing Authorization), with the advisory also tagging CWE-352 (CSRF).
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A high-severity authorization flaw in ZITADEL's hosted Login V2 UI enables one-click account takeover across versions 4.0.0-4.19.4 and 3.0.0-3.4.15. Any signed-in user who clicks a crafted link may unknowingly grant an attacker's device full access, ID, and refresh tokens, compromising identities and downstream applications. Leadership should treat this as a severe identity risk requiring immediate mitigation because no vendor patch is available.
Disable the Device Code grant type, block POST /v2/oidc/device_authorization/{device_authorization_id} at the network edge, revoke active device tokens, and force re-authentication for affected users.
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
Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.
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 pre-hijacking in ZITADEL lets an unauthenticated remote attacker create a user record already bound to a victim'
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
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
Account takeover in ZITADEL's hosted Login V2 UI allows unauthenticated remote attackers to seize active users who have
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
EUVD-2026-113196
GHSA-4j7m-6fr6-j463
NVD
CVE.org
EPSS
Vulnrichment
Exploit-DB