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).
{
"cna_assigner": "mitre",
"cwe_ids": [
"CWE-863"
],
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42999.json",
"unresolved_ranges": [
{
"extracted_events": [
{
"introduced": "14.0.0"
},
{
"fixed": "27.0.2"
},
{
"introduced": "28.0.0"
},
{
"fixed": "28.0.2"
},
{
"introduced": "29.0.0"
},
{
"fixed": "29.0.2"
}
],
"source": "AFFECTED_FIELD"
},
{
"extracted_events": [
{
"introduced": "14.0.0"
},
{
"fixed": "27.0.2"
},
{
"introduced": "28.0.0"
},
{
"fixed": "28.0.2"
},
{
"introduced": "29.0.0"
},
{
"fixed": "29.0.2"
}
],
"source": "CPE_FIELD"
},
{
"extracted_events": [
{
"fixed": "29.0.2"
}
],
"source": "DESCRIPTION"
}
]
}{
"cpe": "cpe:2.3:a:openstack:keystone:*:*:*:*:*:*:*:*",
"extracted_events": [
{
"introduced": "14.0.0"
},
{
"fixed": "27.0.2"
},
{
"introduced": "28.0.0"
},
{
"fixed": "28.0.2"
},
{
"introduced": "29.0.0"
},
{
"fixed": "29.0.2"
}
],
"source": "CPE_RANGE"
}