Skip to main content

Zitadel EUVDEUVD-2026-50418

| CVE-2026-54693 HIGH
Incorrect Authorization (CWE-863)
2026-07-29 https://github.com/zitadel/zitadel GHSA-jq8w-8q2f-ffm9
8.2
CVSS 4.0 · Vendor: https://github.com/zitadel/zitadel
View

Attack ChainAIDerived

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

  1. Access
    Authenticate with valid Zitadel account
  2. Delivery
    Call self-management API to change own email/phone
  3. Exploit
    Request verification code returned in response
  4. Execution
    Server discloses plaintext code to caller
  5. Persist
    Submit code to mark contact verified
  6. Impact
    Claim ownership and bypass email-based policy

Vulnerability Assessment

Weakness
CWE
OWASP Top 10:2025
A01:2025 - Broken Access Control
ASVS 5.0
V8 - Authorization Authorization logic validation
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

Requires an authenticated Zitadel account and use of the self-management API path that returns the verification code to the caller (the returnCode/return-code option on the email or phone change or send-code flow). The specific condition is self-managing your OWN email or phone while requesting the code be returned in-band instead of delivered via email/SMS - that returned code is what enables 'verifying' an address you do not control. Limiting factors: the attacker must already hold valid credentials (this is not fully unauthenticated despite the vendor's PR:N rating), and operations against ANOTHER user's email/phone remain correctly permission-checked, confining abuse to the attacker's own account. Affected only on Zitadel 2.43.0-2.71.19, 3.0.0-3.4.10, and 4.0.0-4.15.0.

Impact

The vendor scores this 8.2 (High) on CVSS 4.0 (AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:N/SI:H), reflecting network reach, low complexity, and high integrity impact on both the vulnerable system and email-trust-dependent subsequent systems. However, the description clearly frames the flaw as self-management by an authenticated user, which conflicts with the vendor's PR:N - an attacker must already hold a valid Zitadel account, so a privilege requirement of at least PR:L is more defensible; verify the PR rating against your deployment. There is no CISA KEV listing and no public proof-of-concept in the provided data, so this is not confirmed actively exploited and no EPSS-driven mass-exploitation signal is present. Real-world priority is moderate-to-high for identity-critical deployments: the impact (forging verified contact ownership to bypass email-based trust, account recovery, or policy gates) is serious, but exploitation is gated by needing an authenticated account and by the fact that changing another user's data remains correctly permission-checked. EPSS and SSVC/automatable data were not supplied.

Exploit ScenarioDerived

An authenticated Zitadel user calls the self-management API to change their email (or phone) to an address they do not own, requesting the verification code be returned in the API response (returnCode) rather than emailed to the real owner. The API returns the plaintext code, the attacker submits it to complete 'verification,' and their account now shows a verified email they never controlled - satisfying email-based security policies or asserting ownership of that identifier. No public PoC is available, but the attack is low-complexity for anyone with a valid account.

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

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

Alert me

AnalysisAIv2 – Jul 29, 2026

Improper authorization in Zitadel's user self-management API lets any authenticated user obtain the plaintext email/phone verification code for their own account and mark those contact details as verified without ever proving control of them. This is an incomplete-fix follow-up to CVE-2026-27946 (GHSA-282g-fhmx-xf54): that advisory blocked setting email.is_verified:true via UpdateHumanUser, but additional code paths still returned the verification code to the self-managing user. It affects Zitadel 2.43.0-2.71.19, 3.0.0-3.4.10, and 4.0.0-4.15.0, letting attackers claim ownership of emails/phones they do not control and bypass email-based security policies. No public exploit identified at time of analysis.

Earlier versions of this analysis (1)
v1 Jul 29, 2026 - 17:21

Improper authorization in Zitadel's user self-management API lets any authenticated user obtain the email/phone verification code for their own account and thereby mark an address or number they do not actually control as verified. This is a follow-on bypass to CVE-2026-27946 (GHSA-282g-fhmx-xf54): after the direct email.is_verified: true path on UpdateHumanUser was closed, additional code paths still returned the plaintext verification code (returnCode) to the requesting user without an adequate permission check, enabling users to claim ownership of arbitrary identifiers and bypass email-based security policies. No public exploit identified at time of analysis; not listed in CISA KEV. Fixed in 4.15.1, 3.4.11 (and the corresponding 2.x-lineage build).

RemediationAI

Vendor-released patch: upgrade 4.x to >=4.15.1 (https://github.com/zitadel/zitadel/releases/tag/v4.15.1) and both the 3.x and 2.x lines to >=3.4.11 (https://github.com/zitadel/zitadel/releases/tag/v3.4.11) - the advisory directs 2.x users to the 3.4.11 release. The underlying fix ships in commits 90f310212d3a5075084a603bf61fed549c92956d, a1748b2f0326ddf7be0de44b4f980ae2c07c0151, and ed09b3df7f43e870423e4d8f2757e6894481604f. If you cannot upgrade immediately, the vendor-recommended workaround is to deploy a Zitadel Action (v2) that intercepts and prevents returning the verification code to the requesting/own user, closing the disclosure path at the cost of added action-engine configuration and maintenance and disrupting any self-service flow that legitimately relies on returned codes for that account. Refer to advisory GHSA-jq8w-8q2f-ffm9 and contact security@zitadel.com with questions.

Affected VersionsENISA

zitadel 2.43.0, ≤ 2.71.19
zitadel 3.0.0-rc.1, < 3.4.11
zitadel 4.0.0-rc.1, < 4.15.1

Affected Packages

go github.com/zitadel/zitadel fix: 1.80.0-v2.20.0.20260608144108-ed09b3df7f43
euvd zitadel_2_43_0 no fix
euvd zitadel_3_0_0_rc_1 fix: 3.4.11
euvd zitadel_4_0_0_rc_1 fix: 4.15.1

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 4 packages in go, euvd

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, cloud-native identity and access management (IAM) platform written in Go (module github.com/zitadel/zitadel), providing user-management APIs including self-service updates to a user's own email and phone. The root cause is CWE-863 (Improper Authorization): in internal/command/user_v2_email.go, changeUserEmailWithGeneratorEvents and sendUserEmailCodeWithGeneratorEvents called checkPermissionUpdateUser with allowSelfManagement hard-coded to true. That is correct for a user changing their own email address, but unsafe when the request also asks the server to return the verification code (returnCode=true) instead of delivering it out-of-band via email/SMS. Because the code was handed back to the caller, a user could 'verify' a contact they never actually received a message at. The fix sets allowSelfManagement := !returnCode, so requesting the returned code now requires explicit write permission on the user rather than mere self-management; equivalent logic applies to the phone path.

Know when the next one hits your stack

  • 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 (https://github.com/zitadel/zitadel) PRIMARY 8.2 HIGH
CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:A/VC:N/VI:H/VA:N/SC:N/SI:H/SA:N
vuln.today AI 6.5 MEDIUM

Network API, low complexity; requires an authenticated account so PR:L not PR:N; no UI since the attacker drives the flow; high integrity from forging verified ownership, no confidentiality/availability impact.

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

Primary rating from Vendor (https://github.com/zitadel/zitadel).

CVSS VectorVendor: https://github.com/zitadel/zitadel

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

Lifecycle Timeline

2
CVSS changed
Jul 29, 2026 - 17:22 NVD
8.2 (HIGH)
CVE Published
Jul 29, 2026 - 16:54 cve.org
HIGH

DescriptionCVE.org

Summary

A vulnerability in Zitadel's self-management capability allowed users to mark their email and phone as verified without going through an actual verification process.

While GHSA-282g-fhmx-xf54 (CVE-2026-27946, "Users Can Self-Verify Email/Phone via UpdateHumanUser API") closed the path that let any authenticated user mark an arbitrary email or phone as verified on their own account by calling UpdateHumanUser with email.is_verified: true, additional paths were discovered.

Impact

Zitadel provides an API for managing users. The API also allows users to self-manage their own data including updating the email and phone.

Due to an improper permission check, the API allowed returning the verification code for the email and phone to the own user. This allows users to claim ownership of an email or phone they do not control and potentially bypass email-based security policies.

Note that when changing another user's email or phone, regardless of the verification flag, the permissions were correctly checked.

Affected Versions

Systems running one of the following versions are affected:

  • 4.x: 4.0.0 through 4.15.0 (including RC versions)
  • 3.x: 3.0.0 through 3.4.10 (including RC versions)
  • 2.x: 2.43.0 through 2.71.19

Patches

The vulnerability has been addressed in the latest releases. The patch resolves the issue by requiring the correct permission in case the verification flag is provided and only allows self-management of the email address, resp. phone number itself.

4.x: Upgrade to >=4.15.1 3.x: Update to >=3.4.11 2.x: Update to >=3.4.11

Workarounds

The recommended solution is to upgrade to a patched version. If an upgrade is not possible, an action (v2) could be used to prevent returning the verification code to the own user.

Questions

If you have any questions or comments about this advisory, please email us at [security@zitadel.com](mailto:security@zitadel.com)

Credits

Thanks to eddieran for reporting this vulnerability.

Latest POC

1 public PoC link from github

Sign in to open the public PoC links collected for this CVE.

Executive ViewAI

Why It Matters

A vulnerability in Zitadel's identity verification system allows authenticated users to claim ownership of email addresses and phone numbers without proving control, potentially bypassing email-based security controls and enabling account takeover. Organizations using Zitadel for authentication risk attackers gaining unauthorized access to accounts and circumventing multi-factor authentication and password recovery processes. Immediate assessment of Zitadel deployment scope is required to determine exposure.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.3%
Top 73% exploitable
Prevalence
Medium
popular open-source IAM platform, common but not universally deployed
Threat Intel
1
1 source
Social Media
2
Sightings
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment GHSA Vendor CIRCL GitHub

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 Yes
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
No
Human Impact
High
Technical Impact
Partial

Priority Score

61
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +41
PoC: +20
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.

Vendor StatusVendor

SUSE

Severity: Important
Product Status
SUSE Linux Enterprise Server 16.1 Affected
SUSE Linux Enterprise Server for SAP applications 16.1 Affected

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