If you run ZITADEL, the open-source identity platform, check the version number today. Three critical flaws, each of which lets an attacker take over someone else’s account, were fixed in releases between mid-July and early September 2026, but their CVE records were published on October 4, 2026. Anything older than 4.17.3 is affected by at least one of them, and ZITADEL 3.x has no fix for the most serious one.
This article lays out which versions are affected by each flaw, what each requires from an attacker, and which questions to ask of your own logs. It is based on ZITADEL’s GitHub security advisories and the CVE records; we did not install ZITADEL or test any of the flaws.
The three flaws
All three are authorization or verification failures around how an account gets tied to a login method. The details come from ZITADEL’s advisories, and the dates and CVSS 4.0 scores from the CVE records, which were published by VulnCheck, acting as CVE Numbering Authority (the organization authorized to issue the CVE IDs).
| CVE-2026-105207 | CVE-2026-105209 | CVE-2026-105215 | |
|---|---|---|---|
| Advisory | GHSA-g8gj-gq47-xgf4 | GHSA-pq2q-2c6r-75c4 | GHSA-738m-7888-jfv8 |
| Flaw | External identity provider (IdP) links are created without verifying a primary factor or the caller’s permission | Passkey or passwordless enrollment codes are issued after checking only the organization named in a request header, not the target user’s organization | Login V1’s “external account not found” registration endpoint trusts client-supplied identity fields without a completed IdP callback |
| Result | Account takeover | Account takeover across organizations | Account pre-hijacking |
| What the attacker needs | The victim’s login name; no account, no interaction | User-write permission in any one organization on the same instance | The victim’s external user ID, known or predictable; the victim must later sign in with that IdP |
| Affected versions | 4.0.0 to 4.17.2; 3.0.0 to 3.4.15 | 4.0.0 to 4.17.0; 3.0.0 to 3.4.14 | 4.0.0 to 4.16.1; 3.0.0 to 3.4.13 |
| Fixed in | 4.17.3 and later; no 3.x fix | 4.17.1 and later; 3.4.15 and later | 4.16.2 and later; 3.4.14 and later |
| Login UI affected | Login V2 and the User Service V2 API; Login V1 unaffected | Not described as specific to one login UI; concerns issuing enrollment codes | Login V1 only; Login V2 unaffected |
| Advisory score | 9.8 Critical | 9.6 Critical | 9.1 Critical |
| CVSS 4.0 score in CVE record | 9.3 | 9.3 | 9.3 |
| CVE record published | October 4, 2026 | October 4, 2026 | October 4, 2026 |
An IdP (identity provider) is an external service such as a company directory or social login that vouches for a user’s identity. A passkey is a phishing-resistant sign-in credential bound to a device, covered in our comparison of passkeys and passwords.
What each one means in practice
CVE-2026-105207 is the broadest. ZITADEL’s advisory says an attacker who knows only a victim’s login name can bind their own external identity to the victim’s account through the Login V2 identify-only session, then sign in as the victim. The same weakness is reachable through the API endpoint that adds IdP links, so changing the login screen does not close it. The advisory says it needs no authentication, no privileges and no user interaction. If your instance allows external IdP sign-in at all, treat this as the priority.
CVE-2026-105209 matters most for multi-tenant setups. If you use separate ZITADEL organizations for separate customers or business units on one instance, an administrator in one organization could obtain an enrollment code for a user in another and register their own authenticator. The attacker needs a legitimate foothold first, so for a single-organization company the realistic threat is an insider or a compromised administrator account. For a service that gives each customer an organization, a customer administrator is a possible attacker.
CVE-2026-105215 is a pre-hijack. The attacker creates an account in advance, bound to the victim’s external identity. The victim’s first genuine sign-in through that IdP then lands in the attacker-prepared account. It needs the victim’s external user ID, which the advisory says may be known or predictable, and only Login V1 is affected.
When the fixes actually shipped
The CVE records were published on October 4, 2026; two of them (CVE-2026-105209 and CVE-2026-105215) were updated on October 5. The fixes are older. The “public” dates in the CVE records are July 29, August 14 and September 4, 2026 for CVE-2026-105215, CVE-2026-105209 and CVE-2026-105207, respectively. ZITADEL’s releases page lists 3.4.15 and 4.17.1 as released August 14, 2026 and 4.17.3 as released September 4, 2026, which matches. It lists 4.16.2 and 3.4.14 as released July 29, 2026, which also matches.
Two consequences follow. First, an organization that kept to a routine upgrade cadence may already be on a fixed build without having seen any alert. Second, an organization that skipped those releases has been exposed for weeks to flaws whose fixes were public, and the CVE publication on October 4 makes the technical detail easier for others to find. Whether anyone used them in that window is something we found no reporting on.
Where the sources disagree or are unclear
- Version ranges for CVE-2026-105207. ZITADEL’s advisory lists 3.0.0 through 3.4.15 and 4.0.0 through 4.17.2 as affected, with 4.17.3 as the fix. The CVE record’s text agrees, but its structured data also contains a second block that lists versions up to and including 4.19.4 as affected. That contradicts the advisory, which names 4.17.3 as the fixed release, and would flag a patched 4.19.4 server in any scanner that reads that field. We treat the advisory as authoritative and note the record’s data as inconsistent; we have not seen a correction.
- Severity numbers. A widely circulated summary lists the three flaws as 9.8, 9.6 and 9.1. Those are the CVSS 3.1 scores. On CVSS 4.0, which the CVE records also carry, all three score 9.3. The two are different scales and should not be compared against each other.
- What “latest” is. The newest release we found on October 6 was 4.19.4, dated October 1, 2026. The release notes for 4.19.2 (September 28, 2026) say it addresses three further vulnerabilities: two rated High, both account takeover issues (advisories GHSA-x4c7-fpcx-w9q6 and GHSA-jh92-5mrj-p2w2), and one rated Low (GHSA-w4gv-rcwj-w6r5). We did not review those advisories in detail, and they are separate from the three CVEs covered here.
What to do, in order
This sequence is our recommendation, built on ZITADEL’s advisories.
1. Find every instance and its version
Include development, staging and any instance that serves a single customer. Record whether it runs 3.x or 4.x, and whether Login V1, Login V2 or both are enabled, since that decides which flaws apply.
2. Upgrade to 4.17.3 or later, preferably the newest 4.x
Fixing all three requires at least 4.17.3. Given the further fixes in 4.19.2, aim for the newest 4.x release. One upgrade requirement to plan for: the 4.19.2 release notes say Login V2 now requires session cookie signing, that the ZITADEL_SESSION_COOKIE_SECRET environment variable (at least 32 characters) must be set before upgrading, and that users have to sign in again afterward. If you are on 3.x, plan the move to 4.x now: the advisory for CVE-2026-105207 says the 3.x line reached end-of-life on August 31, 2026 and will not be patched, so staying on 3.x leaves that flaw open. Test the upgrade first, because a major-version move can change login behavior.
3. If you must wait, apply the partial workarounds and limit exposure
ZITADEL lists two partial workarounds. Disabling external IdP account linking reduces the CVE-2026-105207 route through Login V2 but not the API route. Disabling manual account creation on external IdPs reduces CVE-2026-105215 but turns off legitimate self-service registration. For CVE-2026-105209 the advisory says no configuration workaround fully addresses it. Our own suggestion, not ZITADEL’s: where an instance is only used by staff, restricting it to a VPN or an allowlist of source addresses reduces the number of people who can reach the vulnerable endpoints, though it does not help against CVE-2026-105209, where the attacker is already an authenticated administrator.
4. Look for takeovers that already happened
Upgrading removes the flaw, not an attacker who has already taken an account. We did not verify ZITADEL’s log or event names, so use your own audit logs and match these questions to what they record:
- IdP links. Have any existing accounts gained an external IdP link that the owner did not create, especially since August 2026? A takeover through CVE-2026-105207 leaves a new link on the victim’s account.
- Passkey and passwordless enrollment. Were enrollment codes issued by an administrator in organization A for a user in organization B? Did any account register a new authenticator it did not request?
- Accounts created through external sign-in that no real person used. Pre-hijack accounts are created through the registration endpoint, with an external identity attached before the real person arrives.
- Sign-ins that follow one of those changes from an unfamiliar address or device.
If you find a suspicious link or authenticator, remove it, revoke the account’s active sessions and review what the account could reach. Our guide to detecting leaked keys and rotating them covers the follow-up for any secrets those accounts could read.
5. Keep the logs
Make sure identity-provider events are retained somewhere an attacker with administrator rights in one tenant cannot erase them. The reasoning is in our piece on logging for incidents rather than dashboards.
What this says about identity systems generally
The three flaws share one pattern, which is our reading, not ZITADEL’s: the system trusted a claim about who was acting without checking it where the change happened. In CVE-2026-105207 it was a link request, in CVE-2026-105209 a header naming an organization, and in CVE-2026-105215 identity fields supplied by the browser. When you review any identity platform, including a hosted one, ask where an account’s credentials can be added or changed, and what is checked at that exact step.
The timing is also a lesson. These are fixed-before-disclosed flaws, and the organizations hurt are those that treat identity software as set-and-forget. Put your identity provider on the same patch watchlist as your edge devices, and rank it using the approach in our vulnerability backlog piece.
Sources and verification
Checked on October 6, 2026. We did not install ZITADEL, test any flaw or review its source code. ZITADEL’s advisories and releases page were read through a page-summarizing tool; the CVE records were read directly from the CVE Program API. The affected-version lists, workarounds and release dates below should be checked against the primary pages before you act on them.
| Important claim | Source | Verification |
|---|---|---|
| CVE-2026-105207: unauthenticated account takeover via IdP linking; affects 4.0.0 to 4.17.2 and 3.0.0 to 3.4.15; fixed in 4.17.3; 3.x end-of-life; Login V1 unaffected | GHSA-g8gj-gq47-xgf4; CVE record | Qualified: CVE record’s structured data contains an inconsistent second range |
| CVE-2026-105209: cross-organization takeover via passkey enrollment; affects 4.0.0 to 4.17.0 and 3.0.0 to 3.4.14; fixed in 4.17.1 and 3.4.15; no complete workaround | GHSA-pq2q-2c6r-75c4; CVE record | Verified |
| CVE-2026-105215: pre-hijacking in Login V1; affects 4.0.0 to 4.16.1 and 3.0.0 to 3.4.13; fixed in 4.16.2 and 3.4.14; Login V2 unaffected | GHSA-738m-7888-jfv8; CVE record | Verified |
| Advisory scores 9.8, 9.6, 9.1; CVE records carry CVSS 3.1 scores of 9.8, 9.6, 9.1 and CVSS 4.0 scores of 9.3 | The three advisories and CVE records above | Verified |
| CVE records published October 4, 2026 by VulnCheck; public dates July 29, August 14 and September 4, 2026 | CVE records above | Verified |
| 4.16.2 and 3.4.14 released July 29, 2026; 3.4.15 and 4.17.1 released August 14, 2026; 4.17.3 released September 4, 2026; 4.19.2 (September 28, 2026) addresses three further vulnerabilities and requires a Login V2 session cookie secret; 4.19.4 dated October 1, 2026 | ZITADEL releases; 4.19.2 release notes | Verified: as read October 6, 2026 |
| Partial workarounds: disable external IdP linking (105207, Login V2 only); disable manual account creation on external IdPs (105215) | GHSA-g8gj-gq47-xgf4; GHSA-738m-7888-jfv8 | Qualified: vendor advisory; not tested |
| Not in CISA KEV (catalog 2026.10.04); CISA enrichment lists exploitation “none” for CVE-2026-105209 and CVE-2026-105215 as of October 5, 2026 | CISA KEV data; CVE records | Qualified: point-in-time; no CISA enrichment seen for CVE-2026-105207 |
Frequently asked questions
Which ZITADEL version should I run to be protected from all three flaws?
At least 4.17.3. That is the first release fixing CVE-2026-105207, and it is later than the fixes for the other two (4.17.1 and 4.16.2). ZITADEL's release notes for 4.19.2, dated September 28, 2026, say it addresses three further vulnerabilities (two rated High, one Low) and recommend that all 4.x deployments upgrade, so the better target is the newest 4.x release, which was 4.19.4 (October 1, 2026) when we checked. From 4.19.2, Login V2 requires a session cookie secret to be set before upgrading.
I run ZITADEL 3.x. Am I covered if I update to 3.4.15?
Not completely. 3.4.15 fixes CVE-2026-105209 and CVE-2026-105215, but the advisory for CVE-2026-105207 lists 3.0.0 through 3.4.15 as affected and says the 3.x line has reached end-of-life, so the fix exists only in 4.x.
Is there a workaround if I cannot upgrade today?
Only partial ones. For CVE-2026-105207, disabling external identity provider account linking reduces the Login V2 route but not the API route. For CVE-2026-105215, disabling manual account creation on external identity providers helps, at the cost of self-service registration. ZITADEL's advisory for CVE-2026-105209 says no configuration workaround fully addresses it.
Are these flaws being exploited?
We found no report of exploitation. None of the three was in CISA's Known Exploited Vulnerabilities catalog (version 2026.10.04), and CISA's enrichment data on CVE-2026-105209 and CVE-2026-105215 lists exploitation as 'none' as of October 5, 2026. Absence of reports is not proof of absence, and details of all three are now public.
Why do the CVSS scores differ between sources?
CVSS (Common Vulnerability Scoring System) has more than one version. ZITADEL's advisories list 9.8, 9.6 and 9.1, which match the CVSS 3.1 scores in the CVE records. The same records carry CVSS 4.0 scores, and all three are 9.3.
