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).
Affected products
| Vendor | Product | Affected | Fixed |
|---|---|---|---|
| OpenStack | Keystone | 14.0.0 – < 27.0.2, 28.0.0 – < 28.0.2, 29.0.0 – < 29.0.2 | 27.0.2 |
Fixed in Linux distributions
Distributions backport fixes, so the version that fixes this vulnerability differs per release — upgrade to at least the version shown. From the distributions' security trackers and advisories.
Debian
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian 14 | keystone | 2:29.0.1-2 | — |
| Debian 13 | keystone | 2:27.0.0-3+deb13u4 | — |
| Debian 12 | keystone | 2:22.0.2-0+deb12u3 | — |
Ubuntu
Security tracker ↗| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu 26.04 LTS | keystone | 2:29.0.0-0ubuntu1.2 | — |
| Ubuntu 25.10 | keystone | 2:28.0.0-0ubuntu1.3 | — |
| Ubuntu 24.04 LTS | keystone | 2:25.0.0-0ubuntu1.4 | — |
| Ubuntu 22.04 LTS | keystone | 2:21.0.1-0ubuntu2.4 | — |
Show 3 more (older releases, extended support, other products)Fewer releases
| Release | Package | Fixed in | Advisory |
|---|---|---|---|
| Ubuntu Pro 20.04 LTS | keystone | No fix yet | — |
| Ubuntu Pro 18.04 LTS | keystone | No fix yet | — |
| Ubuntu Pro 16.04 LTS | keystone | No fix yet | — |
Affected packages
| Ecosystem | Package | Affected | Fixed | Record |
|---|---|---|---|---|
| PyPI | keystone | >= 14.0.0, < 27.0.2 | 27.0.2 | GHSA-2r23-2g6v-2m5f |
| PyPI | keystone | >= 28.0.0, < 28.0.2 | 28.0.2 | GHSA-2r23-2g6v-2m5f |
| PyPI | keystone | >= 29.0.0, < 29.0.2 | 29.0.2 | GHSA-2r23-2g6v-2m5f |
| PyPI | keystone | >= 14.0.0, < 27.0.2 · >= 28.0.0, < 28.0.2 · >= 29.0.0, < 29.0.2 | 27.0.2, 28.0.2, 29.0.2 | PYSEC-2026-600 |