Bug 2501738 (CVE-2026-16105)

Summary: CVE-2026-16105 keycloak-services: keycloak-services: Missing per-role authorization on RoleContainerResource composite endpoints
Product: [Other] Security Response Reporter: OSIDB Bzimport <bzimport>
Component: vulnerabilityAssignee: Product Security <prodsec-ir-bot>
Status: NEW --- QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: anujha, aschwart, asoldano, aszczucz, bbaranow, bmaxwell, boliveir, bstansbe, dlofthou, drichtar, istudens, ivassile, iweiss, mosmerov, mposolda, msvehla, nwallace, pberan, pesilva, pjindal, pmackay, rmartinc, rstancel, ssilvert, sthorger, thjenkin, vdosoudi, vmuzikar
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: ---
Doc Text:
A flaw was found in the RoleContainerResource component of Keycloak. The issue occurs because certain name-based endpoints in the admin REST API do not properly enforce authorization checks when managing composite roles. This allows a delegated administrator with manage-realm permissions to remove essential child roles from built-in admin roles, potentially disrupting administrative functions within a realm.
Story Points: ---
Clone Of: Environment:
Last Closed: Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description OSIDB Bzimport 2026-07-17 14:50:55 UTC
A missing authorization check vulnerability was discovered in Keycloak admin REST API name-based composite endpoints. The flaw exists in the RoleContainerResource where the name-based path (/admin/realms/{realm}/roles/{role-name}/composites) was not updated with the security fixes previously applied to the id-based path.
The root cause is the failure to validate that a delegated administrator has the necessary permissions to modify built-in admin roles when using the name-based resource path. An attacker with manage-realm permissions can exploit this by sending a DELETE request to the name-based composite endpoint.
Successful exploitation allows an attacker to remove the manage-users, impersonation, or manage-clients child roles from the built-in admin role, thereby degrading the permissions of other administrators within the same realm.