External risk intelligence

ZITADEL Cross-Organization Account Takeover via Passkey Enrollment

CVE advisorySeverity: CRITICAL (CVSS 9.3)

CVE-2026-105209

ZITADEL is an identity and access management (IAM) solution designed to be deployed as an internet-facing service for authentication, passkey management, and user identity across applications. As an identity provider, it acts as a public-facing gateway for user authentication by design.

Halo Surface Signal: 5 out of 5 — more likely to be public-facing.

External exposure likelihood

Horizon Alert

Summary of the vulnerability and why it matters

This advisory concerns a critical vulnerability in ZITADEL's identity and access management system that could allow unauthorized account takeover. The flaw lies in how the system handles passkey and passwordless enrollment codes, where an attacker with user-write permissions in one organization could potentially register their own authenticator to gain control of an account in a different organization within the same instance. The main concern is confirming relevance and exposure, as this could impact user accounts and the integrity of identity management if exploited.

  • Improper authorization allows account takeover.
  • Leadership should remember this affects user account security.
  • Confirm relevance and exposure for affected accounts.

Attack Path

How an attacker could exploit the issue

An attacker, starting with user-write permissions in one organization, can exploit this vulnerability by manipulating the `x-zitadel-orgid` header when issuing enrollment codes. This allows them to obtain a code for a user in a different organization. By then registering their own authenticator using this code, the attacker can take over the target user's account, effectively hijacking their identity within the ZITADEL instance.

  • Attacker needs write permission.
  • Triggered by manipulated header during code issuance.
  • Leads to cross-organization account takeover.

Live Threat

Current exploitation, exposure, and threat context

When supported by the advisory, an attacker with user-write permissions in one organization could potentially register their own authenticator to take over user accounts in a different organization on the same ZITADEL instance by obtaining an enrollment code through an improperly checked organization ID.

  • User accounts in other organizations.
  • Obtain enrollment code for another organization.
  • Unauthorized account access.

Operational Fix

Recommended remediation, mitigation, and detection steps

The ZITADEL platform owner or the identity and access management (IAM) platform team is likely responsible for addressing this vulnerability, as it affects user authentication and account takeover. The first practical step is to identify all ZITADEL instances, confirm their exposure and criticality, and determine the accountable owner before planning remediation.

  • Identify ZITADEL instances and owners.
  • Verify user write permissions and orgs.
  • Plan targeted vendor coordination or upgrade.

Supplementary metadata

Validate whether this threat affects your internet-facing exposure.

Halo Threat Intelligence helps prioritize remediation with Halo Surface Signal and H/A/L/O context. Start exposure validation with a free external attack surface trial.

Frequently asked questions

What is ZITADEL?

ZITADEL is an identity and access management (IAM) solution. It functions as a centralized hub that handles user identities, authentication flows, and credential management—like passkeys—for various applications. Because it manages how users sign in, it often serves as a foundational layer for both internal and public-facing software services.

What is the vulnerability in CVE-2026-105209?

This CVE involves an improper authorization weakness (CWE-862). Essentially, the software fails to properly check if a user is authorized to perform an action within a specific organization. Instead of validating that an enrollment request belongs to the target organization, it relies on a header that can be misused, allowing the system to mistakenly grant access to an account in a completely different organization.

How can an attacker trigger this CVE?

An attacker must already possess user-write permissions within one organization on the ZITADEL instance. They trigger the bug by manipulating the 'x-zitadel-orgid' header when requesting enrollment codes. Simply having access to the platform does not trigger this; the attacker must intentionally send a crafted request that tricks the system into ignoring organizational boundaries.

Why should I care if my ZITADEL instance is internet-facing?

According to Halo Surface Signal, ZITADEL is designed to be a public-facing gateway for authentication, making it a natural target for network-based attacks. If your instance is exposed to the internet, unauthorized parties have a larger window to interact with these authorization processes, increasing the risk that a malicious actor could hijack user identities across organizations.

What should I do to respond to CVE-2026-105209?

Begin by auditing your environment to locate all running ZITADEL instances and identify the teams responsible for them. Verify the current version numbers to see if they fall within the affected ranges. Once you have a clear inventory, prioritize coordinating with your IAM team to plan a timely upgrade to a patched version that correctly enforces organizational security checks.

References