CVE-2024-29156
NoneCVSS
—
EPSS
0.7%
Published
Mar 18, 2024
CISA due date
—
Cloudanix analysis
A configuration error in an OpenStack component could let ordinary users see secret credentials that belong to the cloud management system itself.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Theoretical
- Impact
- Data Exposure
- Component
- Application
- Class
- Information Disclosure
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The MuranoPL extension to YAQL in OpenStack Murano does not sanitize the caller-supplied environment, allowing an authenticated user to traverse and read internal service account objects that should remain inaccessible.
Why it matters to the business
Service account credentials or tokens stored inside the Murano environment may be disclosed to ordinary users, increasing the chance of unauthorized access to other OpenStack services and data.
How an attack unfolds
An attacker with access to create or update a Murano environment supplies a crafted YAQL expression that references unsanitized environment variables; the expression is evaluated and the resulting output is returned, exposing sensitive service account details.
How to fix it
Upgrade OpenStack Murano to a build that includes commit 76e7d9e3ad5d7586fac6d686609f83701eb81036 (or later) and ensure YAQL 3.0.0 or newer is used; restart Murano API and engine services after the update.
How to confirm the fix worked
Confirm the deployed Murano package contains commit 76e7d9e3ad5d7586fac6d686609f83701eb81036, run the Murano unit tests that exercise environment sanitization, and verify that attempts to reference service-account objects now return only sanitized results.
Typical attack path
- Obtain a valid OpenStack user account with Murano access
- Create or modify a Murano environment containing a malicious YAQL expression
- Submit the environment for execution or introspection
- Receive the evaluated result containing leaked service account data
How to detect it
Search Murano API and engine logs for YAQL expressions that reference environment keys known to hold service account data; look for repeated or anomalous environment introspection requests from non-admin users.
What your security team should do
- Apply the fixed commit or newer package immediately on all Murano deployments
- Audit existing Murano environments for any stored secrets and rotate them
- Restrict Murano environment creation privileges to the smallest set of trusted users
- Monitor Murano API logs for unusual YAQL expressions or environment introspection calls
The record
In OpenStack Murano through 16.0.0, when YAQL before 3.0.0 is used, the Murano service's MuranoPL extension to the YAQL language fails to sanitize the supplied environment, leading to potential leakage of sensitive service account information.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | yaql | 0 | 3.0.0 |
| Debian:11 | murano | 0 | No fix |
| Debian:12 | murano | 0 | No fix |
| Red Hat:openstack:16.2::el8 | openstack-tripleo-common | 0 | 0:11.7.1-2.20230809225405.e189622.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-tripleo-common-container-base | 0 | 0:11.7.1-2.20230809225405.e189622.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-tripleo-common-containers | 0 | 0:11.7.1-2.20230809225405.e189622.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-tripleo-common-devtools | 0 | 0:11.7.1-2.20230809225405.e189622.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-tripleo-heat-templates | 0 | 0:11.6.1-2.20230808225220.el8ost |
| Red Hat:openstack:16.2::el8 | python-yaql | 0 | 0:1.1.3-9.el8ost |
| Red Hat:openstack:16.2::el8 | python3-tripleo-common | 0 | 0:11.7.1-2.20230809225405.e189622.el8ost |
| Red Hat:openstack:16.2::el8 | python3-yaql | 0 | 0:1.1.3-9.el8ost |
| Red Hat:openstack:17.1::el8 | openstack-tripleo-heat-templates | 0 | 0:14.3.1-17.1.20231103003748.2.el8ost |
| Red Hat:openstack:17.1::el8 | python-yaql | 0 | 0:1.1.3-11.el8ost |
| Red Hat:openstack:17.1::el8 | python3-yaql | 0 | 0:1.1.3-11.el8ost |
| Red Hat:openstack:17.1::el9 | openstack-tripleo-heat-templates | 0 | 0:14.3.1-17.1.20231103010826.2.el9ost |
| Red Hat:openstack:17.1::el9 | python-yaql | 0 | 0:1.1.3-11.el9ost |
| Red Hat:openstack:17.1::el9 | python3-yaql | 0 | 0:1.1.3-11.el9ost |
| Ubuntu:16.04:LTS | murano | 0 | No fix |
| Ubuntu:18.04:LTS | murano | 0 | No fix |
| Ubuntu:20.04:LTS | murano | 0 | No fix |
| Ubuntu:22.04:LTS | murano | 0 | No fix |
| Ubuntu:24.04:LTS | murano | 0 | No fix |
| Ubuntu:24.10 | murano | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | murano | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | murano | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | murano | 0 | No fix |