ZITADEL: Improper Role Revocation on Granted Projects during Multiple Role Deletions
### Summary A bug in how ZITADEL updates permissions when multiple project roles are deleted at the same time can cause some user permissions to be missed. This issue specifically affects **User Grants on Granted Projects** (projects shared between different organizations), **potentially** allowing users to keep access rights that were supposed to be completely removed. ### Impact When an organization shares a project with another organization (a Project Grant), administrators can assign specific roles to users via a User Grant. If multiple roles are deleted from that project at the same time, a background process runs to strip those roles from the assigned users. Because of an error in how ZITADEL loops through a user's list of roles during this specific cross-organization cleanup, deleting two or more roles at once **might** cause the system to accidentally skip over some of them. > **Scope Note:** This vulnerability only affects **User Grants on Granted Projects**. Direct project roles and global organization roles are not impacted. The risk depends entirely on what the skipped role allowed the user to do—if it was an administrative or high-privilege role, the user **could potentially** retain those elevated permissions within that granted project even after the role was officially deleted. ### Affected Versions * **4.x:** `4.0.0` through `4.15.3` (including RC versions) * **3.x:** `3.0.0` through `3.4.12` (including RC versions) Note: The 3.x release channel has reached End-of-Life (EOL) for security updates and will not receive a backported patch. ### Patches & Resolution This issue has been fully resolved in the latest releases. The update fixes the role-removal logic to ensure no roles are skipped. Furthermore, **this patch includes an automatic database migration**. When you update, the system will automatically scan your database, find any user permissions on granted projects that **may** have been accidentally left behind by this bug, and correct them. - **4.x**: Upgrade to $\ge$[4.16.0](https://github.com/zitadel/zitadel/releases/tag/v4.16.0) - **3.x**: Update to $\ge$[4.16.0](https://github.com/zitadel/zitadel/releases/tag/v4.16.0) (or check out workarounds) ### Workarounds There are no configuration workarounds. Upgrading to a patched version is the recommended solution and only way to trigger the automatic cleanup migration. If you cannot upgrade immediately, we recommend manually reviewing user permissions specifically for your **Granted Projects** where multiple roles were recently deleted. ### Questions If you have any questions or comments about this advisory, please reach out to us at security@zitadel.com. ### Credits Thanks to [AyushParkara](https://github.com/AyushParkara) for reporting this vulnerability.
describes (1)
Related CVEs.
| ID | severity | exploitable | ||
|---|---|---|---|---|
| CVE-2026-76081US | — | — | ||
ZITADEL is an open source identity management platform. Prior to version 4.16.0, a bug in how ZITADEL updates permissions when multiple project roles are deleted at the same time c… | ||||
references
External citations — patches, advisories, analysis.
Advisories like this name the exposed products attackers go after on your perimeter. See what is exposed on your perimeter with a free passive scan.
Free scan