ZITADEL Allows Account Takeover via Malicious X-Forwarded-Proto Header Injection
Key facts
- Attack vector
- Network
- Privileges required
- None
- User interaction
- Required
- Attack complexity
- Low
- Impact type
- Spoofing, Code execution
- Confidentiality · integrity · availability
- High · High · High
- Fix status
- Fixed
Attack profile from CVSS 3.1 · NVD. Fix status from CNA and GitHub. Impact type from CWE-601 and CWE-77.
Summary
Zitadel is open-source identity infrastructure software. Prior to versions 2.70.12, 2.71.10, and 3.2.2, a potential vulnerability exists in the password reset mechanism. ZITADEL utilizes the Forwarded or X-Forwarded-Host header from incoming requests to construct the URL for the password reset confirmation link. This link, containing a secret code, is then emailed to the user. If an attacker can manipulate these headers (e.g., via host header injection), they could cause ZITADEL to generate a password reset link pointing to a malicious domain controlled by the attacker. If the user clicks this manipulated link in the email, the secret reset code embedded in the URL can be captured by the attacker. This captured code could then be used to reset the user's password and gain unauthorized access to their account. This specific attack vector is mitigated for accounts that have Multi-Factor Authentication (MFA) or Passwordless authentication enabled. This issue has been patched in versions 2.70.12, 2.71.10, and 3.2.2.
Why it matters now
SSVC decision points
CISA ADP · SSVC 2.0.3
- Exploitation
- None
- Automatable
- No
- Technical impact
- Total
The decision (Track, Attend, Act) also depends on your mission and well-being impact; see CISA's SSVC guide.
Affected products
| Vendor | Product | Affected versions | Fixed in | Status | Source |
|---|---|---|---|---|---|
| zitadel | zitadel | before 2.70.12; 2.71.0 – 2.71.10; 3.0.0-rc1 to before 3.2.2 | 2.70.12, 3.2.2 | Patch available | CNA |
| — | github.com/zitadel/zitadel (Go) | before 0.0.0-20250528081227-c097887bc5f6 | 0.0.0-20250528081227-c097887bc5f6 | Patch available | GHSA-93m4-mfpg-c3xf |
| — | github.com/zitadel/zitadel/v2 (Go) | 2.38.3 to before 2.70.12 | 2.70.12 | Patch available | GHSA-93m4-mfpg-c3xf |
| — | github.com/zitadel/zitadel/v2 (Go) | 3.0.0-rc1 to before 3.2.2 | 3.2.2 | Patch available | GHSA-93m4-mfpg-c3xf |
| — | github.com/zitadel/zitadel/v2 (Go) | 2.71.0 to before 2.71.11 | 2.71.11 | Patch available | GHSA-93m4-mfpg-c3xf |
| — | github.com/zitadel/zitadel/v2 (Go) | all versions | — | No fix listed | GHSA-93m4-mfpg-c3xf |
- zitadel Vendorzitadel Affected before 2.70.12; 2.71.0 – 2.71.10; 3.0.0-rc1 to before 3.2.2 Fixed in 2.70.12, 3.2.2 Patch available CNA
- github.com/zitadel/zitadel (Go) Vendor— Affected before 0.0.0-20250528081227-c097887bc5f6 Fixed in 0.0.0-20250528081227-c097887bc5f6 Patch available GHSA-93m4-mfpg-c3xf
- github.com/zitadel/zitadel/v2 (Go) Vendor— Affected 2.38.3 to before 2.70.12 Fixed in 2.70.12 Patch available GHSA-93m4-mfpg-c3xf
- github.com/zitadel/zitadel/v2 (Go) Vendor— Affected 3.0.0-rc1 to before 3.2.2 Fixed in 3.2.2 Patch available GHSA-93m4-mfpg-c3xf
- github.com/zitadel/zitadel/v2 (Go) Vendor— Affected 2.71.0 to before 2.71.11 Fixed in 2.71.11 Patch available GHSA-93m4-mfpg-c3xf
- github.com/zitadel/zitadel/v2 (Go) Vendor— Affected all versions Fixed in — No fix listed GHSA-93m4-mfpg-c3xf
CPE configurations NVD · 1
| CPE | Versions | Role | Vendor |
|---|---|---|---|
| cpe:2.3:a:zitadel:zitadel:*:*:*:*:*:*:*:* | 2.0.0 to before 2.70.12; 2.71.0 to before 2.71.11; 3.0.0 to before 3.2.2 | Vulnerable | zitadel |
- cpe:2.3:a:zitadel:zitadel:*:*:*:*:*:*:*:* Versions 2.0.0 to before 2.70.12; 2.71.0 to before 2.71.11; 3.0.0 to before 3.2.2 Vulnerable ·zitadel
Remediation
- Fix · CNA zitadel (zitadel) Fixed in 2.70.12, 3.2.2
- Fix · GHSA-93m4-mfpg-c3xf github.com/zitadel/zitadel (Go) Fixed in 0.0.0-20250528081227-c097887bc5f6 Advisory →
- Fix · GHSA-93m4-mfpg-c3xf github.com/zitadel/zitadel/v2 (Go) Fixed in 2.70.12 Advisory →
- Fix · GHSA-93m4-mfpg-c3xf github.com/zitadel/zitadel/v2 (Go) Fixed in 3.2.2 Advisory →
- Fix · GHSA-93m4-mfpg-c3xf github.com/zitadel/zitadel/v2 (Go) Fixed in 2.71.11 Advisory →
Timeline
- 2026-10-02 Threatist record created from CVE-2025-48936
- 2026-10-03 Alias added: GHSA-93m4-mfpg-c3xf
References
More Zitadel vulnerabilities
- TI-2024-26607 ZITADEL Vulnerable to Session Information Leakage CVSS 3.1MEDIUM 6.5
- TI-2025-41253 ZITADEL Vulnerable to Unauthenticated Full-Read SSRF via V2 Login CVSS 3.1CRITICAL 9.3
- TI-2025-39554 Zitadel Bypass Second Authentication Factor CVSS 4.0HIGH 8.7
- TI-2024-33224 Zitadel User Registration Bypass Vulnerability CVSS 3.1HIGH 7.5
- TI-2024-31388 Service Users Deactivation not Working in Zitadel CVSS 3.1HIGH 8.1
- TI-2026-23310 ZITADEL: Bypassing Zitadel Login Behavior and Security Policy in Login V2 CVSS 3.1HIGH 8.2
Sources
- CVE-2025-48936 · CVE Program
- CVE-2025-48936 · NVD
- FIRST EPSS
- GHSA-93m4-mfpg-c3xf · GitHub Advisory Database · CC BY 4.0
This product uses the NVD API but is not endorsed or certified by the NVD. Sources and licences