CVE-2024-40767
Medium · 6.5CVSS
6.5
EPSS
0.9%
Published
Jul 24, 2024
CISA due date
—
Cloudanix analysis
A flaw in widely used cloud software lets logged-in users trick the system into handing over copies of files it is not supposed to share, which could expose private information.
- Exploitation
- Remote Authenticated
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Authenticated users can supply a raw-format disk image that is actually a crafted QCOW2 or VMDK file containing a backing-file or descriptor path; Nova follows the embedded path and returns the referenced file contents from the server, enabling unauthorized file reads.
Why it matters to the business
Attackers with valid credentials may obtain sensitive configuration files, credentials, or other data stored on compute nodes, increasing risk of further compromise and potential operational disruption across all Nova-based cloud deployments.
How an attack unfolds
An authenticated user creates a malicious QCOW2 or VMDK image embedding a path to a target file, uploads or references it as a raw-format image during instance creation or image registration, and Nova's image handling code follows the path and returns the file contents to the user.
How to fix it
Upgrade OpenStack Nova to 27.4.1 or later, 28.2.1 or later, or 29.1.1 or later. Until patches can be applied, restrict image upload and registration privileges and enforce strict validation of image formats and backing paths.
How to confirm the fix worked
Confirm Nova services are running patched versions, review image-handling code for the presence of the prior incomplete fixes, and test that crafted QCOW2/VMDK images no longer return arbitrary file contents.
Typical attack path
- Obtain valid OpenStack credentials
- Craft QCOW2 or VMDK image with malicious backing-file or descriptor path
- Register or boot an instance using the crafted image presented as raw format
- Receive contents of the referenced server-side file in the response
How to detect it
Review Nova compute and API logs for image registration or instance creation events that specify raw format yet reference QCOW2 or VMDK structures; correlate with unexpected file-access patterns on compute hosts.
What your security team should do
- Apply the listed Nova version upgrades immediately on all deployments
- Audit and tighten image upload and Glance integration permissions
- Monitor for unusual image registration or instance creation events involving raw format
- Re-test any prior mitigations applied for CVE-2022-47951 and CVE-2024-32498
The record
In OpenStack Nova before 27.4.1, 28 before 28.2.1, and 29 before 29.1.1, by supplying a raw format image that is actually a crafted QCOW2 image with a backing file path or VMDK flat image with a descriptor file path, an authenticated user may convince systems to return a copy of the referenced file's contents from the server, resulting in unauthorized access to potentially sensitive data. All Nova deployments are affected. NOTE: this issue exists because of an incomplete fix for CVE-2022-47951 and CVE-2024-32498.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| PyPI | nova | 0 | No fix |
| PyPI | nova | 28.0.0 | No fix |
| PyPI | nova | 29.0.0 | No fix |
| Debian:11 | nova | 0 | 2:22.4.0-1~deb11u5 |
| Red Hat:openstack:16.1::el8 | openstack-nova | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-api | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-common | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-compute | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-conductor | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-console | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-migration | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-novncproxy | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-scheduler | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-serialproxy | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | openstack-nova-spicehtml5proxy | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.1::el8 | python3-nova | 0 | 1:20.4.1-1.20221005193235.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-api | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-common | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-compute | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-conductor | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-console | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-migration | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-novncproxy | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-scheduler | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-serialproxy | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | openstack-nova-spicehtml5proxy | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:16.2::el8 | python3-nova | 0 | 1:20.6.2-2.20230814165229.el8ost |
| Red Hat:openstack:17.1::el9 | openstack-nova | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-api | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-common | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-compute | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-conductor | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-migration | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-novncproxy | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-scheduler | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-serialproxy | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | openstack-nova-spicehtml5proxy | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Red Hat:openstack:17.1::el9 | python3-nova | 0 | 1:23.2.3-17.1.20231018130829.el9ost |
| Ubuntu:20.04:LTS | nova | 0 | 2:21.2.4-0ubuntu2.11 |
| Ubuntu:22.04:LTS | nova | 0 | 3:25.2.1-0ubuntu2.6 |
| Ubuntu:24.04:LTS | nova | 0 | 3:29.0.1-0ubuntu1.4 |
| Ubuntu:24.10 | nova | 0 | 3:29.1.0+git2024080716.bb2d7f9c-0ubuntu1 |
| Ubuntu:Pro:16.04:LTS | nova | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | nova | 0 | No fix |
| pypi | nova | 28.0.0 | No fix |
| pypi | nova | 29.0.0 | No fix |
Related vulnerabilities
- GHSA-m4f3-qp2w-gwh6 OpenStack Nova calls qemu-img without format restrictions for resize Also affects nova
- CVE-2026-24708 An issue was discovered in OpenStack Nova before 30.2.2, 31 before 31.2.1, and 32 before… Also affects nova
- CVE-2024-32498 An issue was discovered in OpenStack Cinder through 24.0.0, Glance before 28.0.2, and… Also affects nova
- CVE-2015-9543 An issue was discovered in OpenStack Nova before 18.2.4, 19.x before 19.1.0, and 20.x… Also affects nova
- CVE-2015-3241 OpenStack Compute (nova) 2015.1 through 2015.1.1, 2014.2.3, and earlier does not stop the… Also affects nova
- CVE-2014-3608 The VMWare driver in OpenStack Compute (Nova) before 2014.1.3 allows remote authenticated… Also affects nova
- CVE-2014-3517 api/metadata/handler.py in OpenStack Compute (Nova) before 2013.2.4, 2014.x before… Also affects nova
- CVE-2023-2088 A flaw was found in OpenStack due to an inconsistency between Cinder and Nova. Also affects nova