CyberRota Analysis
AI-GeneratedAuthenticated users with the role of "reader" in OpenStack Keystone versions prior to 29.0.3 can exploit a vulnerability to enumerate all project-scoped role assignments across any domain, potentially exposing sensitive information about users, groups, and roles. This issue arises from a flawed domain ID check that allows unauthorized access to role assignment data, enabling attackers to map role assignments throughout the cloud environment. Organizations using affected versions of OpenStack Keystone should prioritize patching to mitigate the risk of information disclosure and unauthorized access.
Original NVD Description
In OpenStack Keystone before 29.0.3, any authenticated user holding role:reader on any project can list every project-scoped role assignment under any domain by passing a domain ID as scope.project.id with include_subtree to the GET /v3/role_assignments endpoint. The domain's project record has domain_id=null, causing the policy domain_id check to pass for any caller. With include_names, the response discloses the names and home-domain IDs of every user, group, project, and role involved. The literal "default" domain ID works against any deployment created with keystone-manage bootstrap. An attacker can harvest domain IDs from the response and repeat the query to map role assignments across the entire cloud. This is caused by misuse of "None" inĀ list_role_assignments_for_tree.