CVE-2026-2035366

Description

A flaw was found in OpenStack Keystone where an application credential token can escape its intended project scope through token-method reauthentication. Keystone rejects an explicit scope change for an application credential token, but an omitted scope falls through to the owner's default project. If the owner has roles on that default project, Keystone issues a new token scoped there while still carrying the original application credential identity. Custom Keystone authentication plugins are subject to the same incomplete rescope guard. This allows a limited-scope application credential for one project to access another project within the owner's role assignments.

Statement

This vulnerability is rated as Important because an authenticated user with an application credential can escape the credential's project binding through token reauthentication and access the owner's default project. Custom Keystone authentication plugins can be affected in the same way. Exploitation requires a valid application credential and a different default project where the owner also has roles. Application credential reauthentication only becomes practically exploitable from Keystone 27.0.1 on the 27.x stable line, and from 28.0.0 on the 28.x line. On earlier versions, exchanging an application credential token fails before a new token is issued. Red Hat OpenStack Platform 16.2, 17.1, and 18.0 (including RHOSO) ship openstack-keystone versions below 27.0.1 and are not affected. A separately identified weakness in EC2 credential reauthentication is outside the scope of this CVE and is being documented by upstream as residual exposure. Client libraries such as python-keystoneclient, python-keystoneauth1, and python-keystonemiddleware do not contain the vulnerable Keystone server code and are not affected.

Mitigation

Set the following in keystone.conf to prevent exchanging a scoped token for a token with a different project scope:

[token]
allow_rescope_scoped_token = False

This blocks the application-credential default-project fallback. It also prevents Horizon project switching for users who authenticate with a scoped token. This setting does not disable application credentials themselves.

Common Vulnerability Scoring System (CVSS) Score Details

Info alert:Important note

CVSS scores for open source components depend on vendor-specific factors (e.g. version or build chain). Therefore, Red Hat's score and impact rating can be different from NVD and other vendors. Red Hat remains the authoritative CVE Naming Authority (CNA) source for its products and services (see Red Hat classifications).

The following CVSS metrics and score provided are preliminary and subject to review.

CVSS v3 Score Breakdown

Red HatNVDcve.org
Base Score7.1N/AN/A
Attack VectorNetworkN/AN/A
Attack ComplexityLowN/AN/A
Privileges RequiredLowN/AN/A
User InteractionNoneN/AN/A
ScopeUnchangedN/AN/A
ConfidentialityHighN/AN/A
Integrity ImpactLowN/AN/A
Availability ImpactNoneN/AN/A

Vector

Red Hat: CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:L/A:N

Red Hat CVSS v3 Score Explanation

Network-accessible API, low complexity, requires authenticated user with an application credential (PR:L), no user interaction, scope unchanged, high confidentiality impact via cross-project access, low integrity impact, no availability impact.

Understanding the Weakness (CWE)

Confidentiality

Technical Impact: Read Application Data; Read Files or Directories

An attacker could bypass intended access restrictions to read sensitive data, either by reading the data directly from a data store that is not correctly restricted, or by accessing insufficiently-protected, privileged functionality to read the data.

Integrity

Technical Impact: Modify Application Data; Modify Files or Directories

An attacker could bypass intended access restrictions to modify sensitive data, either by writing the data directly to a data store that is not correctly restricted, or by accessing insufficiently-protected, privileged functionality to write the data.

Access Control

Technical Impact: Gain Privileges or Assume Identity; Bypass Protection Mechanism

An attacker could bypass intended access restrictions to gain privileges by modifying or reading critical data directly, or by accessing privileged functionality.

Confidentiality,Integrity,Availability

Technical Impact: Execute Unauthorized Code or Commands

An attacker could use elevated privileges to execute unauthorized commands or code.

Availability

Technical Impact: DoS: Crash, Exit, or Restart; DoS: Resource Consumption (CPU); DoS: Resource Consumption (Memory); DoS: Resource Consumption (Other)

An attacker could gain unauthorized access to resources on the system and excessively consume those resources, leading to a denial of service.

Acknowledgements

Upstream acknowledges Grzegorz Grasza (Red Hat) and Tim Shephard (roiai.ca) as the original reporters.

Frequently Asked Questions

Want to get errata notifications? Sign up here.