Severity by source
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
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.
Primary rating from Vendor (https://github.com/zitadel/zitadel).
CVSS VectorVendor: https://github.com/zitadel/zitadel
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/E:X/CR:X/IR:X/AR:X/MAV:X/MAC:X/MAT:X/MPR:X/MUI:X/MVC:X/MVI:X/MVA:X/MSC:X/MSI:X/MSA:X/S:X/AU:X/R:X/V:X/RE:X/U:X
Lifecycle Timeline
6DescriptionCVE.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.0through4.15.0(including RC versions) - 3.x:
3.0.0through3.4.10(including RC versions) - 2.x:
2.43.0through2.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.
AnalysisAI
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. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | 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). … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | 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. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | 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. … |
| Remediation | 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. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, identify all Zitadel instances and document which versions are currently deployed (particularly versions 2.43.0-2.71.19, 3.0.0-3.4.10, and 4.0.0-4.15.0), and assess which systems rely on email verification for security controls. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same weakness CWE-863 – Incorrect Authorization
View allSame technique Authentication Bypass
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-50418
GHSA-jq8w-8q2f-ffm9