CVE-2024-41952

5.3 MEDIUM

📋 TL;DR

This vulnerability in Zitadel identity management system allows attackers to enumerate valid usernames when the 'Ignoring unknown usernames' security feature is enabled. Due to a database deadlock prevention change, the system sometimes returns 'object not found' errors instead of generic 'Username or Password invalid' messages, revealing whether accounts exist. This affects all Zitadel administrators who have enabled the username obfuscation feature.

💻 Affected Systems

Products:
  • Zitadel
Versions: All versions before 2.58.1, 2.57.1, 2.56.2, 2.55.5, 2.54.8, and 2.53.9
Operating Systems: All platforms running Zitadel
Default Config Vulnerable: ✅ No
Notes: Only vulnerable when 'Ignoring unknown usernames' setting is enabled. Default configuration does not have this setting enabled.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers can enumerate all valid usernames in the system, enabling targeted credential stuffing, phishing, or social engineering attacks against identified users.

🟠

Likely Case

Attackers can perform username enumeration to identify valid accounts, then conduct password spraying or targeted brute-force attacks against those accounts.

🟢

If Mitigated

With proper monitoring and rate limiting, impact is limited to information disclosure about account existence without direct access compromise.

🌐 Internet-Facing: HIGH
🏢 Internal Only: MEDIUM

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: LIKELY
Unauthenticated Exploit: ⚠️ Yes
Complexity: LOW

Exploitation requires only sending authentication requests and observing error message differences. No special tools or authentication required.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.58.1, 2.57.1, 2.56.2, 2.55.5, 2.54.8, or 2.53.9

Vendor Advisory: https://github.com/zitadel/zitadel/security/advisories

Restart Required: Yes

Instructions:

1. Identify your current Zitadel version. 2. Upgrade to the appropriate patched version for your release line. 3. Restart Zitadel services. 4. Verify the fix by testing authentication with non-existent usernames.

🔧 Temporary Workarounds

Disable 'Ignoring unknown usernames' feature

all

Temporarily disable the vulnerable security feature until patching is complete

zitadel admin settings update --ignore-unknown-usernames=false

🧯 If You Can't Patch

  • Implement strict rate limiting on authentication endpoints to prevent automated username enumeration
  • Deploy a WAF or reverse proxy to normalize error messages and mask 'object not found' responses

🔍 How to Verify

Check if Vulnerable:

Enable 'Ignoring unknown usernames' setting, then attempt authentication with a non-existent username. If response contains 'object not found' instead of generic error, system is vulnerable.

Check Version:

zitadel version

Verify Fix Applied:

After patching, test with non-existent username. Should always return generic 'Username or Password invalid' error regardless of username existence.

📡 Detection & Monitoring

Log Indicators:

  • Multiple 'object not found' errors in authentication logs
  • Unusual patterns of failed login attempts with varied usernames

Network Indicators:

  • High volume of authentication requests to /oauth/token or /auth endpoints
  • Pattern of failed auth requests followed by successful logins

SIEM Query:

source="zitadel" AND (message="object not found" OR error="object not found") | stats count by src_ip, user

🔗 References

📤 Share & Export