CVE-2026-42999

openstack-keystone: OpenStack Keystone: Unauthorized access and privilege escalation via arbitrary policy attribute injection

Published May 28, 2026 CVSS 3.1 · 6 Medium EPSS < 1% KEV · Not listed
Description
An issue was discovered in OpenStack Keystone before 29.0.2. The Keystone RBAC policy enforcer in enforce_call unconditionally merges the raw JSON request body into the policy enforcement dictionary via policy_dict.update(json_input.copy()), overwriting trusted target data that was previously set from database lookups. Because flask.request.get_json is called with force=True, this works regardless of Content-Type or HTTP method. Any authenticated user can inject arbitrary policy target attributes (e.g., user_id, project_id) into the request body to bypass RBAC checks and perform unauthorized operations on resources belonging to other users or projects. This was introduced in commit 5ea59f52 (Rocky/14.0.0).

Remediation

No solution or workaround provided in the CVE record

Tracking

Sign in to view the affected projects.

Advisories

Source ID Title
Debian DLA Debian DLA DLA-4611-1 keystone security update
Debian DSA Debian DSA DSA-6331-1 keystone security update
Github GHSA Github GHSA GHSA-2r23-2g6v-2m5f OpenStack Keystone has an Authorization Bypass
Ubuntu USN Ubuntu USN USN-8433-1 OpenStack Keystone vulnerabilities
History
Type Values Removed Values Added
Title Keystone RBAC Bypass via Untrusted JSON Input openstack-keystone: OpenStack Keystone: Unauthorized access and privilege escalation via arbitrary policy attribute injection
Weaknesses CWE-639
References
Metrics threat_severity

None

threat_severity

Important

Type Values Removed Values Added
Title Keystone RBAC Bypass via Untrusted JSON Input
Type Values Removed Values Added
Metrics ssvc

{'options': {'Automatable': 'no', 'Exploitation': 'none', 'Technical Impact': 'partial'}, 'version': '2.0.3'}

Type Values Removed Values Added
Description An issue was discovered in OpenStack Keystone before 29.0.2. The Keystone RBAC policy enforcer in enforce_call unconditionally merges the raw JSON request body into the policy enforcement dictionary via policy_dict.update(json_input.copy()), overwriting trusted target data that was previously set from database lookups. Because flask.request.get_json is called with force=True, this works regardless of Content-Type or HTTP method. Any authenticated user can inject arbitrary policy target attributes (e.g., user_id, project_id) into the request body to bypass RBAC checks and perform unauthorized operations on resources belonging to other users or projects. This was introduced in commit 5ea59f52 (Rocky/14.0.0).
First Time appeared Openstack
Openstack keystone
Weaknesses CWE-863
CPEs cpe:2.3:a:openstack:keystone:*:*:*:*:*:*:*:*
Vendors & Products Openstack
Openstack keystone
References
Metrics cvssV3_1

{'score': 6, 'vector': 'CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L'}

Weaknesses

Sources

Status
PUBLISHED
Assigner
mitre
Published
Updated
Jul 24, 2026, 12:05 PM
Reserved
May 1, 2026, 12:00 AM
Status
Modified
Published
May 28, 2026, 7:16 PM
Modified
Oct 26, 2026, 1:10 PM
Severity
Important
Public date
May 28, 2026, 12:00 AM