Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain victim's password (phishing/leak)
-
DeliveryPass password verification in Login V2
-
ExploitAbandon MFA step and restart login
-
ExecutionReuse session, skip enrolled second factor
-
ImpactComplete OIDC/SAML callback as victim
Vulnerability Assessment
| Weakness |
CWE
OWASP Top 10:2025
A07:2025 - Authentication Failures
ASVS 5.0
V6 - Authentication Authentication mechanism validation
MITRE ATT&CK
2 techniques across 2 tactics: Defense Evasion, Initial Access The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up. |
| Exploitation Conditions | Requires ZITADEL 4.0.0-4.16.0 using Login V2 (Login V1 is not affected). The targeted user must have VOLUNTARILY enrolled a second factor (TOTP, OTP, or U2F), and the organization must have Force MFA and 'Force MFA for local users only' both DISABLED - with either policy enabled the session-validity check still requires MFA and the bypass fails. The attacker must possess the victim's valid first-factor password to complete the initial password verification, then abandon the MFA step and restart the flow to reuse the session while completing an OIDC or SAML callback to a customer application. Not exploitable against the ZITADEL Console, Management/Admin APIs, or user self-management. |
| Impact | The CVSS 3.1 base score of 8.2 (AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N) frames this as a high-severity, network-reachable authentication-bypass flaw, and CWE-287 plus the 'Authentication Bypass' tag are consistent with a genuine MFA-verification gap in ZITADEL Login V2. However, the raw score overstates unconditional risk: exploitation is not a blind remote attack. Two real limiting factors are established by the description - the victim must have VOLUNTARILY enrolled a second factor (TOTP/OTP/U2F), and the organization must NOT enforce 'Force MFA' or 'Force MFA for local users only'; where Force MFA is enabled, the session-validity check still demands MFA and the bypass does not apply. The vector's PR:N is debatable because a practical attack requires the attacker to already possess the victim's valid first-factor password, which is a meaningful precondition (see assessed vector, where I use PR:L). No EPSS score, no CISA KEV listing, and no public exploit code are present in the provided data, so this is 'no public exploit identified at time of analysis' rather than active exploitation - SSVC-style signals point toward a patch-promptly (not act-now) priority. The confidentiality impact is real (an attacker with a stolen password can complete an OIDC/SAML login to downstream customer applications as the victim, defeating the user's opt-in MFA), so for organizations running affected versions with users who self-enrolled MFA but without Force MFA policy, this is a legitimate priority to patch, not a purely theoretical high-CVSS item. |
| Exploit ScenarioDerived | An attacker who has phished or otherwise obtained a victim's ZITADEL password logs in via Login V2, passes password verification (which creates a browser session), then abandons the MFA prompt and restarts login; because the organization has not enabled Force MFA, the reused session passes validity checks without the victim's enrolled TOTP/U2F factor, and the attacker completes an OIDC or SAML callback to a customer application as the victim. No public exploit code is identified at time of analysis, but the flow is straightforward and requires no special tooling once the password is known. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Sep 24, 2026
MFA bypass in ZITADEL Login V2 (versions 4.0.0 through 4.16.0) lets an attacker who already holds a victim's valid first-factor password complete an OIDC or SAML login to a customer application without ever satisfying the user's voluntarily enrolled TOTP, OTP, or U2F second factor. The browser session created after password verification is reused when the login flow is abandoned at the MFA step and restarted, and the pre-fix session-validity check only demanded MFA when the organization had Force MFA or Force MFA for local users enabled. The assessed CVSS 3.1 vector is 8.2 (AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N) reflecting the requirement of the victim's password; Login V1, the ZITADEL Console, Management/Admin APIs, and user self-management are unaffected, a vendor patch is available as 4.16.1, and no public exploit code has been identified at time of analysis.
RemediationAI
Upgrade to ZITADEL 4.16.1, which is the vendor-released patch for this issue and can be obtained from the v4.16.1 release tag; the underlying code changes are in upstream commits 049dbb25a56587fb3980c85c99819cad69f637db and 56f4798ed31fc1cfcd9a0e7f6f0152289d2fdc43 and can be backported if upgrading is not immediately possible. As a compensating control, enable either the Force MFA or the 'Force MFA for local users only' organization login policy, because the vulnerable session-validity path still enforces MFA when one of those policies is active; the trade-off is that this forces a second-factor prompt on user populations that may not have enrolled one, increasing login friction and support load, and it only protects organizations whose users have usable MFA configured. Affected deployments that cannot change policy or upgrade should treat all Login V2 sessions as unverified for OIDC/SAML relying-party access, monitor authentication logs for flows where a password-verified session is reused to complete a callback without an MFA event, and consider temporarily routing users through the unaffected Login V1 flow, accepting that Login V1 is the legacy path with its own limitations. See the advisory at https://github.com/zitadel/zitadel/security/advisories/GHSA-9993-rfwp-rhwf for the authoritative patch guidance.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 2 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
The root cause is CWE-287 (Improper Authentication) in ZITADEL's Login V2, the Next.js-based login application under apps/login. Login V2 establishes a browser session as soon as the password factor is verified and then, when the user abandons the MFA prompt and restarts the flow, calls continueWithSession in apps/login/src/lib/server/session.ts to reuse that existing session. Before the fix, the shared helper isSessionValid treated a session as valid whenever the primary factor and lifetime checks passed unless organizational policy (Force MFA, or Force MFA for local users only) explicitly required a second factor - so a factor the user had voluntarily enrolled was never checked. The commit 049dbb25a56587fb3980c85c99819cad69f637db makes this explicit by renaming the old helper to isSessionPrimaryFactorAndLifetimeValid and introducing a stricter isSessionValid that also verifies the user's enrolled and configured MFA factor, and by having continueWithSession refuse to complete a flow (redirecting the user back to re-authenticate) when session validity including MFA fails. The affected code path is an authentication/authorization decision made server-side in Login V2 only; the legacy Login V1 flow, the Console UI, and the Management and Admin APIs do not share this session-continuation logic. The CPE cpe:2.3:a:zitadel:zitadel covers the affected self-hosted/cloud ZITADEL deployments running the vulnerable Login V2 range.
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
AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:L/A:N
Network-reachable and low-complexity, but a practical bypass requires the attacker to hold the victim's valid first-factor password, so PR:L; C:H from full account access to customer apps, I:L, no availability impact.
Primary rating from Vendor (GitHub_M).
CVSS VectorVendor: GitHub_M
Lifecycle Timeline
2DescriptionCVE.org
ZITADEL is an open source identity management platform. From 4.0.0 until 4.16.1, ZITADEL Login V2 creates a browser session after password verification and can reuse that session for a later authentication request without verifying a user's enrolled TOTP, OTP, or U2F second factor. When the MFA step is abandoned and login starts again, session-validity checks require MFA only when the organization enables Force MFA or Force MFA for local users only, so a voluntarily enrolled factor can be skipped while completing an OIDC or SAML callback for a customer application. Login V1, the ZITADEL Console, Management and Admin APIs, and user self-management are not affected. This issue is fixed in version 4.16.1.
Technical POC Analysis
Evidence base: GHSA-9993-rfwp-rhwf advisory only.
Full technical POC analysis - root cause, step-by-step exploitation and patch breakdown - is part of the Pro and Business plans.
Executive ViewAI
A multi-factor authentication bypass in ZITADEL Login V2 (versions 4.0.0 through 4.16.0) allows anyone who already holds a user's valid password to sign in to downstream OIDC and SAML applications without ever satisfying the enrolled TOTP, OTP, or U2F second factor. Because ZITADEL commonly acts as the central identity provider, this undermines the authentication assurance for every federated application and user relying on MFA, not just the ZITADEL host itself. The requirement for a valid first-factor password limits trivial mass exploitation, but it materially raises the payoff of credential stuffing, password spraying, and targeted phishing against the organization and its customers.
Apply vendor patch.
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 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 -
EUVD-2026-86324
GHSA-9993-rfwp-rhwf
NVD
CVE.org
EPSS
VulDB
Exploit-DB