Skip to main content

OpenStack Keystone EUVDEUVD-2026-66818

| CVE-2026-80183 HIGH
Access of Resource Using Incompatible Type (Type Confusion) (CWE-843)
2026-08-26 mitre GHSA-xmh6-7768-658c
7.1
CVSS 4.0 · Vendor: mitre
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Obtain role:reader token on any project
  2. Delivery
    Send GET /v3/role_assignments with domain ID as scope.project.id and include_subtree=true
  3. Exploit
    Null domain_id policy check passes for any authenticated caller
  4. Execution
    Receive full role assignment list with user, group, and project names via include_names
  5. Persist
    Extract additional domain IDs from response
  6. Impact
    Repeat query iteratively across all domains to map entire cloud identity topology

Vulnerability Assessment

Weakness
CWE
ASVS 5.0
V15 - Secure Coding and Architecture Type safety enforcement
MITRE ATT&CK

1 technique across 1 tactic: Execution

The technique list with ATT&CK links and the kill-chain view is part of the Basic plan and up.

Exploitation Conditions

The attacker must hold a valid Keystone authentication token with role:reader on any project in the target OpenStack deployment - the minimum non-guest privilege level, commonly granted to ordinary tenants in multi-tenant clouds. No administrative rights, domain-scoped roles, or elevated permissions beyond role:reader are required. Crucially, the attack against the 'default' domain requires no prior knowledge of domain IDs - the literal string 'default' is a universal constant present in every deployment initialized with keystone-manage bootstrap, which covers virtually all standard OpenStack installations. Non-default domains require a domain ID, but these can be iteratively harvested from the initial default-domain response, removing this as a meaningful barrier after the first query. The flaw is limited to read-only enumeration - exploitation grants no write access, no privilege escalation, and no availability impact. The only meaningful limiting factor is the requirement for PR:L authentication; fully unauthenticated attackers cannot exploit this flaw.

Impact

The provided CVSS 4.0 vector (AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:L/SI:N/SA:N, score 7.1) accurately reflects the threat profile. The network attack vector and low attack complexity are confirmed: any HTTP client with a valid token can reach the endpoint. PR:L is correct - role:reader is the minimum non-guest privilege in Keystone, making the authentication bar extremely low in any multi-tenant environment. VC:H is warranted because a single successful request against the default domain can return the complete role assignment graph for all principals in that domain, with iterative queries revealing the entire cloud identity topology. SC:L captures that downstream systems consuming Keystone identity data (Nova, Neutron, Swift, etc.) may be indirectly exposed through the disclosed privilege map. Key risk amplifiers: the 'default' domain ID is a known constant (not a secret), so an attacker with any low-privilege token needs no prior reconnaissance to launch the attack. The iterative harvest mechanic - where each response yields new domain IDs to query - means a single entry point can enumerate the entire cloud. Risk mitigators: exploitation requires a valid authenticated token (PR:L); no KEV listing and no identified POC reduce immediate threat urgency. EPSS data was not available in the provided intelligence. The 'Memory Corruption' tag should not factor into risk scoring - the actual impact is information disclosure only.

Exploit ScenarioDerived

An attacker who has obtained a minimal OpenStack user account - such as a shared-tenant account in a public cloud or a compromised service account - authenticates to Keystone and obtains a project-scoped token with role:reader. The attacker sends GET /v3/role_assignments?scope.project.id=default&include_subtree=true&include_names=true using the well-known 'default' domain ID constant, receiving a full role assignment listing for the default domain including user names, group names, and home-domain IDs. The attacker iterates over the returned domain IDs to repeat the query, progressively constructing a complete map of role assignments across all domains in the cloud - without ever requiring administrative credentials. No public exploit code has been identified at time of analysis.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Aug 27, 2026

OpenStack Keystone before 29.0.3 allows any authenticated user holding role:reader on any project to enumerate all role assignments across any domain in the cloud by exploiting a type-confusion bug in the GET /v3/role_assignments endpoint. The attack supplies a domain ID as scope.project.id with include_subtree, triggering a null domain_id policy check that passes unconditionally for all callers because domains are internally modeled as projects with domain_id=null. With include_names, the response discloses the names and home-domain IDs of every user, group, project, and role across the targeted domain - and the well-known 'default' domain constant works against every deployment bootstrapped with keystone-manage bootstrap, requiring no prior reconnaissance. No public exploit code has been identified at time of analysis, and the flaw is not listed in CISA KEV.

RemediationAI

The primary fix is to upgrade OpenStack Keystone to version 29.0.3 or later, which corrects the null domain_id handling in list_role_assignments_for_tree. The upstream tracking reference is https://launchpad.net/bugs/2154645; operators using distribution packages should await vendor-specific security errata that backport the fix to supported branches. If immediate patching is not possible, a targeted compensating control is to restrict the GET /v3/role_assignments endpoint in Keystone's policy.yaml by requiring a domain-scoped admin role for any request that includes the include_subtree parameter - this prevents role:reader project-scoped tokens from accessing the vulnerable code path, though it may break legitimate administrative tooling that relies on subtree listing. A secondary control is to audit and minimize role:reader grants to only known, trusted users, reducing the population of potential attackers. Blocking include_subtree entirely via policy would eliminate the attack surface without full endpoint shutdown but requires testing against tenant automation that uses this parameter.

Affected VersionsENISA

Keystone 16.0.0 <27.0.3
Keystone 28.0.0 <28.0.3
Keystone 29.0.0 <29.0.3

Affected Packages

euvd keystone fix: 27.0.3, 28.0.3, 29.0.3

Source: OSV (Open Source Vulnerabilities)

Affects your stack

Affects 1 package in euvd

Checking this CVE against your own stacks and servers is part of the Basic plan and up.

Technical ContextAI · show details

OpenStack Keystone (CPE: cpe:2.3:a:openstack:keystone:*:*:*:*:*:*:*:*) is the identity and access management service underpinning OpenStack clouds, implementing domain- and project-scoped role assignment via its v3 API. Internally, Keystone stores domains as special project rows in its database with domain_id=null - a design that conflates the domain concept with the project hierarchy. CWE-843 (Access of Resource Using Incompatible Type, commonly called 'type confusion') precisely describes the root cause: in list_role_assignments_for_tree, the policy enforcement logic compares the caller's domain scope against the target project's domain_id field. Because a domain's project record holds domain_id=None (Python None / SQL NULL), the equality check passes for any authenticated caller regardless of their actual domain context - Python's None does not enforce a domain boundary, it collapses it. The include_subtree parameter instructs the endpoint to recurse through all child projects, and include_names triggers the API to embed full identity metadata (user names, group names, project identifiers, home-domain IDs) in the response body. Note: the 'Memory Corruption' tag in the provided intelligence appears to be a mistag - CWE-843 here manifests as an authorization bypass and information disclosure, not memory safety.

Know when Openstack gets its next vulnerability

  • Watch products and get an email when something new is published
  • Check this CVE against your own stack and servers
  • Exploit and PoC references, threat intelligence from 22 sources

No credit card · 7-day full trial

Severity by source

Vendor (mitre) PRIMARY 7.1 HIGH
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
vuln.today AI 6.5 MEDIUM

Network-accessible API endpoint requiring only role:reader (PR:L); null domain_id bypass fully discloses role assignment data across domains (C:H); no integrity or availability impact applies.

3.1 AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N
4.0 AV:N/AC:L/AT:N/PR:L/UI:N/VC:H/VI:N/VA:N/SC:L/SI:N/SA:N
Red Hat 6.5 MEDIUM

Primary rating from Vendor (mitre).

CVSS VectorVendor: mitre

Attack Vector
Network
Attack Complexity
Low
Attack Requirements
None
Privileges Required
Low
User Interaction
None
Vulnerable system: Confidentiality
High
Vulnerable system: Integrity
None
Vulnerable system: Availability
None
Subsequent system: Confidentiality
Low
Subsequent system: Integrity
None
Subsequent system: Availability
None

Lifecycle Timeline

2
Patch available
Aug 27, 2026 - 04:15 EUVD
CVE Published
Aug 26, 2026 - 23:16 cve.org
HIGH 7.1

DescriptionCVE.org

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.

Executive ViewAI

Why It Matters

OpenStack Keystone versions before 29.0.3 contain a privilege escalation flaw enabling authenticated users to extract sensitive identity data-including all users, groups, projects, and roles-across any domain in the cloud environment. This vulnerability exposes the complete identity structure to users with minimal role:reader privileges and could enable lateral movement or privilege escalation attacks. Immediate mitigation is required while awaiting vendor patches.

Business Impact: High
Compensating Controls

No vendor-released patch identified at time of analysis. Interim mitigations: (1) Restrict network access to Keystone APIs to trusted management networks only; (2) Implement multi-factor authentication for all administrative access; (3) Monitor audit logs for suspicious role_assignments queries combining include_subtree and include_names parameters; (4) Audit and minimize role:reader role assignments; (5) If technically feasible, restrict or block the include_names parameter at API gateway or WAF level.

Threat Intelligence Overview

EPSS Score
0.2%
Top 87% exploitable
Prevalence
Medium
widely deployed in enterprise private and public OpenStack clouds
Data Quality
6 sources
Confidence: High
EUVD NVD CVE.org EPSS Vulnrichment Vendor VulDB

How this decision was reached

The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision
Scheduled
Exploitation
None
System Exposure· derived
Open
Automatable
No
Human Impact
High
Technical Impact
Partial

Priority Score

36
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +36
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0

Attack Technique

Memory corruption occurs when a program writes data beyond the boundaries of allocated memory regions or accesses memory in unintended ways, violating the integrity of the process's address space.

Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.

CVE-2016-6662 CRITICAL POC
9.8 Sep 20

Oracle MySQL through 5.5.52, 5.6.x through 5.6.33, and 5.7.x through 5.7.15; MariaDB before 5.5.51, 10.0.x before 10.0.2

CVE-2013-2121 MEDIUM POC
6.0 Jul 31

Eval injection vulnerability in the create method in the Bookmarks controller in Foreman before 1.2.0-RC2 allows remote

CVE-2013-2113 MEDIUM POC
6.0 Jul 31

The create method in app/controllers/users_controller.rb in Foreman before 1.2.0-RC2 allows remote authenticated users w

CVE-2018-3639 MEDIUM POC
5.5 May 22

Systems with microprocessors utilizing speculative execution and speculative execution of memory reads before the addres

CVE-2015-3456 HIGH POC
7.7 May 13

The Floppy Disk Controller (FDC) in QEMU, as used in Xen 4.5.x and earlier and KVM, allows local guest users to cause a

CVE-2018-11218 CRITICAL POC
9.8 Jun 17

Memory Corruption was discovered in the cmsgpack library in the Lua subsystem in Redis before 3.2.12, 4.x before 4.0.10,

CVE-2015-8914 CRITICAL POC
9.1 Jun 17

The IPTables firewall in OpenStack Neutron before 7.0.4 and 8.0.0 through 8.1.0 allows remote attackers to bypass an int

CVE-2024-28718 CRITICAL POC
9.8 Apr 12

An issue in OpenStack magnum yoga-eom version allows a remote attacker to execute arbitrary code via the cert_manager.py

CVE-2018-11219 CRITICAL POC
9.8 Jun 17

An Integer Overflow issue was discovered in the struct library in the Lua subsystem in Redis before 3.2.12, 4.x before 4

CVE-2017-1000366 HIGH POC
7.8 Jun 19

glibc contains a vulnerability that allows specially crafted LD_LIBRARY_PATH values to manipulate the heap/stack, causin

CVE-2015-7512 CRITICAL
9.0 Jan 08

Buffer overflow in the pcnet_receive function in hw/net/pcnet.c in QEMU, when a guest NIC has a larger MTU, allows remot

CVE-2026-28370 CRITICAL POC
9.1 Feb 27

Code injection in OpenStack Vitrage query parser allows authenticated users to execute arbitrary Python code through cra

Vendor StatusVendor

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy