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.
Published: 2026-08-26
Score: 7.1 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

In OpenStack Keystone versions prior to 29.0.3, any user authenticated with the role:reader can enumerate all project‑scoped role assignments across any domain by sending a GET request to /v3/role_assignments with include_subtree and specifying a domain ID in scope.project.id. Because the domain’s project record sets domain_id to null, the policy check that normally restricts this request passes for any caller, allowing the attacker to retrieve the names and home‑domain IDs of every user, group, project, and role involved. This information disclosure enables an attacker to map the entire role hierarchy of the cloud and potentially leverage it for further exploitation or privilege escalation.

Affected Systems

The affected product is OpenStack Keystone; all releases before 29.0.3 are vulnerable. Users with a project level role:reader can trigger the flaw. No specific patch version is listed, but the CVE references Launchpad bug 2154645 for additional details.

Risk and Exploitability

The vulnerability carries a CVSS score of 7.1, indicating high severity. The EPSS score is not available, and it is not listed in the CISA KEV catalog. The attack vector is authenticated, with attackers needing the relatively common role:reader on any project. The likely exploitation path involves an attacker who has obtained reader access to a project sending a crafted HTTP request to the role assignment endpoint; the response leaks sensitive organizational information that could aid in planning further attacks. The lack of an EPSS score does not diminish the risk posed by the high CVSS rating and the ease of exploitation once the authenticated privilege is present.

Generated by OpenCVE AI on August 27, 2026 at 01:25 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply the latest OpenStack Keystone release (29.0.3 or newer) which enforces proper domain_id checks in role assignment queries.
  • Limit or remove the role:reader privilege from projects that do not require it, reducing the number of accounts that can trigger the disclosure.
  • Disable or filter the use of include_names (and optionally include_subtree) in role_assignment requests for users with only reader access, or configure Keystone to ignore these parameters for such roles.
  • If immediate patching is not possible, use API gateway or firewall rules to block GET /v3/role_assignments requests that contain include_subtree or include_names from callers with the role:reader.

Generated by OpenCVE AI on August 27, 2026 at 01:25 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

References
History

Thu, 27 Aug 2026 00:30:00 +0000

Type Values Removed Values Added
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.
First Time appeared Openstack
Openstack keystone
Weaknesses CWE-843
CPEs cpe:2.3:a:openstack:keystone:*:*:*:*:*:*:*:*
Vendors & Products Openstack
Openstack keystone
References
Metrics cvssV4_0

{'score': 7.1, 'vector': 'CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:L/SI:N/SA:N'}


Subscriptions

Openstack Keystone
cve-icon MITRE

Status: PUBLISHED

Assigner: mitre

Published:

Updated: 2026-08-26T23:16:43.059Z

Reserved: 2026-08-25T21:24:11.765Z

Link: CVE-2026-80183

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-27T01:18:16.050

Modified: 2026-08-27T01:18:16.050

Link: CVE-2026-80183

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-27T02:00:14Z

Weaknesses
  • CWE-843

    Access of Resource Using Incompatible Type ('Type Confusion')