Skip to main content

ZITADEL CVE-2026-119129

| EUVDEUVD-2026-113196 HIGH
Missing Authorization (CWE-862)
2026-10-29 VulnCheck GHSA-4j7m-6fr6-j463
8.6
CVSS 4.0 · Vendor: VulnCheck
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Start device authorization with attacker's user code
  2. Delivery
    Send victim link to Login V2 signed-in page
  3. Exploit
    Victim's active session auto-approves device
  4. Execution
    Attacker device receives victim's tokens
  5. Impact
    Use 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.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.3% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – 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

zitadel 4.0.0 <4.19.5
zitadel 3.0.0 ≤3.4.15

Affected Packages

euvd zitadel fix: 4.19.5

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

Vendor (VulnCheck) PRIMARY 8.6 HIGH
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
vuln.today AI 8.1 HIGH

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.

3.1 AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:N
4.0 AV:N/AC:L/AT:N/PR:N/UI:P/VC:H/VI:H/VA:N/SC:N/SI:N/SA:N

Primary rating from Vendor (VulnCheck).

CVSS VectorVendor: VulnCheck

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
None
User Interaction
Passive
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
High
Vulnerable system: Availability
None
Subsequent system: Confidentiality
None
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Oct 29, 2026 - 17:18 EUVD
CVE Published
Oct 29, 2026 - 15:58 cve.org
HIGH 8.6

DescriptionCVE.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

Why It Matters

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.

Business Impact: Severe
Compensating Controls

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

EPSS Score
0.3%
Top 79% exploitable
Prevalence
Medium
popular open-source IAM platform, moderate but growing enterprise adoption
Data Quality
5 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.3%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
Yes
Human Impact
Very High
Technical Impact
Total

Priority Score

43
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +43
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Authentication bypass attacks exploit flaws in the verification mechanisms that control access to systems and applications.

CVE-2024-49753 CRITICAL POC
9.1 Oct 25

Zitadel is open-source identity infrastructure software. Rated critical severity (CVSS 9.1), this vulnerability is remot

CVE-2023-49097 HIGH POC
8.8 Nov 30

ZITADEL is an identity infrastructure system. Rated high severity (CVSS 8.8), this vulnerability is remotely exploitable

CVE-2026-109372 CRITICAL
9.3 Oct 12

Authentication bypass in ZITADEL 4.x before 4.19.2 and 3.x through 3.4.15 lets an authenticated attacker with organizati

CVE-2026-105215 CRITICAL
9.3 Oct 04

Account pre-hijacking in ZITADEL lets an unauthenticated remote attacker create a user record already bound to a victim'

CVE-2026-105207 CRITICAL
9.3 Oct 04

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

CVE-2026-105209 CRITICAL
9.3 Oct 04

Cross-organization account takeover in ZITADEL 3.x before 3.4.15 and 4.x before 4.17.1 allows an authenticated attacker

CVE-2026-29191 CRITICAL
9.3 Mar 07

Stored XSS in ZITADEL identity management platform versions 4.0.0 to 4.11.1 allows unauthenticated attackers to inject p

CVE-2026-109373 CRITICAL
9.2 Oct 12

Authentication bypass in ZITADEL's Login V2 UI (versions 3.0.0 through 4.19.1) allows unauthenticated attackers to take

CVE-2026-105211 CRITICAL
9.2 Oct 04

Remote account takeover in ZITADEL versions before 4.17.1 allows unauthenticated attackers to compromise MFA-protected a

CVE-2026-119128 CRITICAL
9.1 Oct 29

Account takeover in ZITADEL's hosted Login V2 UI allows unauthenticated remote attackers to seize active users who have

CVE-2025-27507 CRITICAL
9.0 Mar 04

The open-source identity infrastructure software Zitadel allows administrators to disable the user self-registration. Ra

CVE-2024-49757 MEDIUM POC
4.9 Oct 25

The open-source identity infrastructure software Zitadel allows administrators to disable the user self-registration. Ra

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy