All vulnerabilities

Servers and applications

GHSA-vg5j-vf6h-586m

Login V2 exposes internal functions as unauthenticated endpoints

Severity
High 7.4
Published
13 Nov 2026
Last changed
13 Nov 2026
Added to UpHeron
13 Nov 2026
Fixed in
4.20.3
Weakness
CWE-749
Attack
Over the network · Only under certain conditions · No login needed · No user action needed
Attacker can
Read data · Change data
CVSS vector
CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:N
Sources
Project advisories (GitHub)

Description

ZITADEL’s Login V2 UI made several internal server-side functions callable from the outside without authentication. These functions were only meant to be used by the Login UI itself, and they ran with the Login V2 service account, which has instance-wide permissions.

The functions accepted the user they act on, the link they send by email, or the session lifetime directly from the request. Login V2 did not check that the caller was signed in as that user or allowed to choose those values.

An unauthenticated attacker who knows a user’s ID can:

  • Take over accounts that have not set up an authentication method yet, such as invited users who have not accepted their invite. ZITADEL sends the user a genuine verification or invite email, but with a link to a host the attacker controls. When the link is opened — by the user or by an automated link scanner — the attacker receives the code and can set the account’s first credential.
  • Mark the user as having skipped the MFA setup prompt.
From zitadel/zitadel's security advisory. Shortened; the full text is there.

Workarounds

The recommended solution is to upgrade to a patched version. There is no configuration that fully closes this gap on unpatched versions.

Workarounds as given by zitadel/zitadel's security advisory.

Affected software

SoftwareAffected versions
ZITADELServers and applications · github:zitadel/zitadel
  • From 4.0.0 before 4.20.3

References