CVE-2026-80183

High

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.

SeverityHigh
CVSS7.1
Exploit probability—
ProductKeystone
PublishedAug 27, 2026
First seenAug 27, 2026
Weakness typeCWE-843CWE-843

How to fix

Update
  • OpenStack Keystone27.0.3, 28.0.3, 29.0.3 or later

Affected products

ProductAffected versionsFixed in
OpenStack Keystone16.0.0 ≤ v < 27.0.3, 28.0.0 ≤ v < 28.0.3, 29.0.0 ≤ v < 29.0.327.0.3, 28.0.3, 29.0.3

Check your version

Choose the product and enter the version you run to see whether it falls in the affected range.

In the Intelligence 360 plan

Attack Surface Management

See the assets tied to your domains, the technologies they run and known vulnerabilities in one list.