CVE-2024-46999

7.3 HIGH

📋 TL;DR

This vulnerability in Zitadel identity management platform allows deactivated user grants to remain active in tokens, potentially granting unauthorized access to applications and resources. The management and auth APIs incorrectly report these grants as active. All Zitadel users running affected versions are impacted.

💻 Affected Systems

Products:
  • Zitadel
Versions: All versions before 2.62.1, 2.61.1, 2.60.2, 2.59.3, 2.58.5, 2.57.5, 2.56.6, 2.55.8, and 2.54.10
Operating Systems: All
Default Config Vulnerable: ⚠️ Yes
Notes: All Zitadel deployments with user grants functionality are affected regardless of configuration.

📦 What is this software?

⚠️ Risk & Real-World Impact

🔴

Worst Case

Attackers gain persistent unauthorized access to all applications and resources tied to deactivated user grants, potentially leading to data breaches, privilege escalation, and complete system compromise.

🟠

Likely Case

Former employees or users with deactivated grants retain access to applications they should no longer have, leading to unauthorized data access and policy violations.

🟢

If Mitigated

With proper monitoring and access review processes, unauthorized access attempts can be detected and blocked before significant damage occurs.

🌐 Internet-Facing: HIGH
🏢 Internal Only: HIGH

🎯 Exploit Status

Public PoC: ✅ No
Weaponized: UNKNOWN
Unauthenticated Exploit: ✅ No
Complexity: LOW

Exploitation requires a user account with previously granted permissions that have been deactivated. The vulnerability is inherent to the token generation logic.

🛠️ Fix & Mitigation

✅ Official Fix

Patch Version: 2.62.1, 2.61.1, 2.60.2, 2.59.3, 2.58.5, 2.57.5, 2.56.6, 2.55.8, or 2.54.10

Vendor Advisory: https://github.com/zitadel/zitadel/security/advisories/GHSA-2w5j-qfvw-2hf5

Restart Required: Yes

Instructions:

1. Backup your Zitadel configuration and database. 2. Stop Zitadel service. 3. Update to one of the patched versions using your package manager or deployment method. 4. Restart Zitadel service. 5. Verify the update was successful.

🔧 Temporary Workarounds

Manual Grant Removal

all

Explicitly remove user grants instead of deactivating them to ensure access is properly revoked

Use Zitadel management API or UI to completely delete user grants rather than deactivating them

🧯 If You Can't Patch

  • Implement strict monitoring of user grant activity and access patterns
  • Regularly audit and manually remove all deactivated user grants from the system

🔍 How to Verify

Check if Vulnerable:

Check if your Zitadel version is older than the patched versions listed in the advisory

Check Version:

zitadel version or check deployment manifest/configuration

Verify Fix Applied:

After patching, test that deactivated user grants no longer appear in tokens and API responses correctly show grant status

📡 Detection & Monitoring

Log Indicators:

  • Unexpected successful authentication from deactivated users
  • API calls from users with supposedly revoked permissions

Network Indicators:

  • Token validation requests for users with deactivated grants
  • Unusual access patterns from previously deactivated accounts

SIEM Query:

source="zitadel" AND (event="token_issued" OR event="api_call") AND user_status="deactivated"

🔗 References

📤 Share & Export