CVE-2026-42999
OpenStack Keystone has an Authorization Bypass
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).
Attack profile
How easy it is to exploit
- Attack vector
- Network
- Complexity
- High
- Privileges needed
- Low
- User interaction
- None
What an attacker can affect
- Confidentiality
- Low
- Integrity
- Low
- Availability
- Low
Exploit likelihood
What each source reports
CVE List Score used
6.0
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).
- Record
CVE-2026-42999- CVSS 3.1
- 6.0 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L - CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L - Weakness
- CWE-863, CWE-639
- Updated
- 2026-11-02
EUVDEUVD-2026-33241
8.3
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).
- Record
EUVD-2026-33241- CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L - Updated
- 2026-11-02
GitHub AdvisoriesGHSA-2r23-2g6v-2m5f
6.0
OpenStack Keystone has an Authorization Bypass
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).
- Record
GHSA-2r23-2g6v-2m5f- CVSS 3.1
- 6.0 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L - Weakness
- CWE-639, CWE-863
- Updated
- 2026-11-02
NVD
6.0
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).
- Record
CVE-2026-42999- CVSS 3.1
- 6.0 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L - Weakness
- CWE-863, CWE-639
- Updated
- 2026-11-02
OSV
6.0
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).
- Record
CVE-2026-42999- CVSS 3.1
- 6.0 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L - Weakness
- CWE-863
- Updated
- 2026-11-02
OSVDEBIAN-CVE-2026-42999
8.8
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).
- Record
DEBIAN-CVE-2026-42999- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVGHSA-2r23-2g6v-2m5f
6.0
OpenStack Keystone has an Authorization Bypass
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).
- Record
GHSA-2r23-2g6v-2m5f- CVSS 3.1
- 6.0 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L - Weakness
- CWE-639, CWE-863
- Updated
- 2026-11-02
OSVPYSEC-2026-600
8.8
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).
- Record
PYSEC-2026-600- CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
OSVUBUNTU-CVE-2026-42999
6.0
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).
- Record
UBUNTU-CVE-2026-42999- CVSS 3.1
- 6.0 Medium
CVSS:3.1/AV:N/AC:H/PR:L/UI:N/S:C/C:L/I:L/A:L - CVSS 3.1
- 8.3 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:L - CVSS 3.1
- 8.8 High
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H - Updated
- 2026-11-02
Affected products
Affected packages
| Package | Affected | Fixed |
|---|---|---|
keystonePyPI |
14.0.0 up to 27.0.2 | 27.0.2 |
keystonePyPI |
28.0.0 up to 28.0.2 | 28.0.2 |
keystonePyPI |
29.0.0 up to 29.0.2 | 29.0.2 |
keystoneDebian:12 |
before 2:22.0.2-0+deb12u3, plus listed versions 2:22.0.0-22:22.0.2-0+deb12u12:22.0.2-0+deb12u2 |
2:22.0.2-0+deb12u3 |
keystoneDebian:13 |
before 2:27.0.0-3+deb13u4, plus listed versions 2:27.0.0-32:27.0.0-3+deb13u12:27.0.0-3+deb13u3 |
2:27.0.0-3+deb13u4 |
keystoneDebian:14 |
before 2:29.0.1-2, plus listed versions 2:27.0.0-32:28.0.0-12:28.0.0-22:28.0.0-32:28.0.0-4 Show 11 moreShow less2:28.0.0-52:28.0.0-62:28.0.0~rc1-12:28.0.0~rc1-22:28.0.0~rc1-42:29.0.0-12:29.0.0-22:29.0.0-32:29.0.0~rc1-12:29.0.0~rc1-22:29.0.1-1 |
2:29.0.1-2 |
keystonePyPI |
14.0.0 up to 27.0.2, plus listed versions 14.0.114.1.014.2.015.0.015.0.0.0rc1 Show 44 moreShow less15.0.0.0rc215.0.116.0.016.0.0.0rc116.0.0.0rc216.0.116.0.217.0.017.0.0.0rc117.0.0.0rc217.0.118.0.018.0.0.0rc118.1.019.0.019.0.0.0rc119.0.0.0rc219.0.120.0.020.0.0.0rc120.0.121.0.021.0.0.0rc121.0.122.0.022.0.0.0rc122.0.122.0.223.0.023.0.0.0rc123.0.123.0.224.0.024.0.0.0rc124.1.025.0.025.0.0.0rc126.0.026.0.0.0rc126.1.026.1.127.0.027.0.0.0rc127.0.1 |
27.0.2 |
keystonePyPI |
28.0.0 up to 28.0.2, plus listed versions 28.0.1 |
28.0.2 |
keystonePyPI |
29.0.0 up to 29.0.2, plus listed versions 29.0.1 |
29.0.2 |
keystonePyPI |
14.0.0 up to 27.0.2, 28.0.0 up to 28.0.2, 29.0.0 up to 29.0.2, plus listed versions 14.0.114.1.014.2.015.0.015.0.0.0rc1 Show 45 moreShow less15.0.0.0rc215.0.116.0.016.0.0.0rc116.0.0.0rc216.0.116.0.217.0.017.0.0.0rc117.0.0.0rc217.0.118.0.018.0.0.0rc118.1.019.0.019.0.0.0rc119.0.0.0rc219.0.120.0.020.0.0.0rc120.0.121.0.021.0.0.0rc121.0.122.0.022.0.0.0rc122.0.122.0.223.0.023.0.0.0rc123.0.123.0.224.0.024.0.0.0rc124.1.025.0.025.0.0.0rc126.0.026.0.0.0rc126.1.026.1.127.0.027.0.0.0rc127.0.128.0.1 |
27.0.228.0.229.0.2 |
Show 7 moreShow less
| Package | Affected | Fixed |
|---|---|---|
keystoneUbuntu:Pro:16.04:LTS |
All versions, plus listed versions 2:8.0.0-0ubuntu12:9.0.0~b1-0ubuntu12:9.0.0~b2-0ubuntu12:9.0.0~b3-0ubuntu12:9.0.0~rc1-0ubuntu1 Show 11 moreShow less2:9.0.0-0ubuntu12:9.0.2-0ubuntu12:9.0.2-0ubuntu22:9.1.0-0ubuntu12:9.2.0-0ubuntu12:9.3.0-0ubuntu12:9.3.0-0ubuntu22:9.3.0-0ubuntu32:9.3.0-0ubuntu3.12:9.3.0-0ubuntu3.22:9.3.0-0ubuntu3.2+esm2 |
None known |
keystoneUbuntu:Pro:18.04:LTS |
All versions, plus listed versions 2:12.0.0-0ubuntu12:13.0.0~b1-0ubuntu12:13.0.0~b2-0ubuntu12:13.0.0~b3-0ubuntu12:13.0.0~rc1-0ubuntu1 Show 7 moreShow less2:13.0.0~rc2-0ubuntu12:13.0.0-0ubuntu12:13.0.1-0ubuntu12:13.0.2-0ubuntu12:13.0.2-0ubuntu32:13.0.4-0ubuntu12:13.0.4-0ubuntu1+esm1 |
None known |
keystoneUbuntu:Pro:20.04:LTS |
All versions, plus listed versions 2:16.0.0-0ubuntu12:17.0.0~b1~git2019121613.db81fee63-0ubuntu12:17.0.0~b2~git2020020513.99733f172-0ubuntu12:17.0.0~b3~git2020032415.9f9040257-0ubuntu12:17.0.0~b3~git2020032415.9f9040257-0ubuntu2 Show 6 moreShow less2:17.0.0~b3~git2020041013.7bb6314e4-0ubuntu12:17.0.0-0ubuntu0.20.04.12:17.0.1-0ubuntu12:17.0.1-0ubuntu22:17.0.1-0ubuntu2+esm12:17.0.1-0ubuntu2+esm2 |
None known |
keystoneUbuntu:22.04:LTS |
before 2:21.0.1-0ubuntu2.4, plus listed versions 2:20.0.0-0ubuntu12:20.0.0+git2021120815.2ddf8f321-0ubuntu12:20.0.0+git2022011217.771c943ad-0ubuntu12:20.0.0+git2022030313.a3fc9e7c3-0ubuntu12:21.0.0-0ubuntu1 Show 4 moreShow less2:21.0.1-0ubuntu12:21.0.1-0ubuntu22:21.0.1-0ubuntu2.12:21.0.1-0ubuntu2.2 |
2:21.0.1-0ubuntu2.4 |
keystoneUbuntu:24.04:LTS |
before 2:25.0.0-0ubuntu1.4, plus listed versions 2:24.0.0-0ubuntu12:24.0.0+git2024011916.adfa92b4-0ubuntu12:25.0.0~rc1-0ubuntu12:25.0.0-0ubuntu12:25.0.0-0ubuntu1.12:25.0.0-0ubuntu1.2 |
2:25.0.0-0ubuntu1.4 |
keystoneUbuntu:25.10 |
before 2:28.0.0-0ubuntu1.3, plus listed versions 2:27.0.0-0ubuntu12:27.0.0+git2025080113.e066e18ab-0ubuntu12:28.0.0~rc1-0ubuntu12:28.0.0-0ubuntu12:28.0.0-0ubuntu1.1 |
2:28.0.0-0ubuntu1.3 |
keystoneUbuntu:26.04:LTS |
before 2:29.0.0-0ubuntu1.2, plus listed versions 2:28.0.0-0ubuntu12:28.0.0-0ubuntu22:28.0.0+git20260119.61.8a42793e7-0ubuntu12:29.0.0~rc1-0ubuntu12:29.0.0-0ubuntu1 |
2:29.0.0-0ubuntu1.2 |
History
| Recorded | Changed | Sources |
|---|---|---|
| first indexed | CVE List, EUVD, GitHub Advisories, NVD, OSV |
Dates are when Every CVE recorded each change. Upstream dates may differ.
In short
CVE-2026-42999 is a medium vulnerability (CVSS 6.0) in Openstack Keystone, published May 28, 2026. No source lists public exploit code. EPSS puts the chance of exploitation in the next 30 days at 0.33%, the 26th percentile. Fixed in keystone 27.0.2.
References
bugs.launchpad.net/keystone/+bug/2148398
security.openstack.org/ossa/OSSA-2026-015.html
access.redhat.com/security/cve/CVE-2026-42999
bugzilla.redhat.com/show_bug.cgi?id=2482840
security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-42999.json
nvd.nist.gov/vuln/detail/CVE-2026-42999
Show 8 moreShow less
github.com/pypa/advisory-database/tree/main/vulns/keystone/PYSEC-2026-600.yaml
github.com/advisories/GHSA-2r23-2g6v-2m5f
github.com/CVEProject/cvelistV5/tree/main/cves/2026/42xxx/CVE-2026-42999.json
security-tracker.debian.org/tracker/CVE-2026-42999
github.com/openstack/keystone
ubuntu.com/security/CVE-2026-42999
cve.org/CVERecord?id=CVE-2026-42999
ubuntu.com/security/notices/USN-8433-1
Left out here: 1 version. The JSON record has them.