A flaw was found in Keycloak. An IDOR (Broken Access Control) vulnerability exists in the admin API endpoints for authorization resource…
redhat·CWE-289·Published 2025-12-16
A flaw was found in Keycloak. An IDOR (Broken Access Control) vulnerability exists in the admin API endpoints for authorization resource management, specifically in ResourceSetService and PermissionTicketService. The system checks authorization against the resourceServer (client) ID provided in the API request, but the backend database lookup and modification operations (findById, delete) only use the resourceId. This mismatch allows an authenticated attacker with fine-grained admin permissions for one client (e.g., Client A) to delete or update resources belonging to another client (Client B) within the same realm by supplying a valid resource ID.
A flaw was found in Keycloak. An IDOR (Broken Access Control) vulnerability exists in the admin API endpoints for authorization resource management, specifically in ResourceSetService and PermissionTicketService. The system checks authorization against the resourceServer (client) ID provided in the API request, but the backend database lookup and modification operations (findById, delete) only use the resourceId. This mismatch allows an authenticated attacker with fine-grained admin permissions for one client (e.g., Client A) to delete or update resources belonging to another client (Client B) within the same realm by supplying a valid resource ID.
Se encontró un fallo en Keycloak. Existe una vulnerabilidad IDOR (control de acceso roto) en los endpoints de la API de administración para la gestión de recursos de autorización, específicamente en ResourceSetService y PermissionTicketService. El sistema verifica la autorización contra el ID del resourceServer (cliente) proporcionado en la solicitud de la API, pero las operaciones de búsqueda y modificación de la base de datos del backend (findById, delete) solo utilizan el resourceId. Esta discrepancia permite a un atacante autenticado con permisos de administrador de grano fino para un cliente (p. ej., Cliente A) eliminar o actualizar recursos pertenecientes a otro cliente (Cliente B) dentro del mismo reino al proporcionar un ID de recurso válido.
| Version | Type | Source | Base | Exp | Impact | Vector |
|---|---|---|---|---|---|---|
| 3.1 | Primary | cve.org | 6.0 | — | — | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:H/A:L |
| 3.1 | Primary | cve.org | 6.0 | — | — | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:H/A:L |
| 3.1 | Primary | cve.org | 6.0 | — | — | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:H/A:L |
| 3.1 | Secondary | ENISA EUVD | 6.0 | — | — | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:H/A:L |
| 3.1 | Secondary | NVD | 6.0 | 1.2 | 4.7 | CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:L/I:H/A:L |