Skip to content

Unvalidated image data passed to qemu-img

Moderate
tuminoid published GHSA-c7m2-p8jm-4m27 Sep 5, 2024

Package

ironic-image (Docker image)

Affected versions

< v24.0.1, < v24.1.2, < v25.0.1, < v26.0.1

Patched versions

v24.0.1, v24.1.2, v25.0.1, v26.0.1

Description

Impact

Ironic-image is Metal3 packaged OpenStack Ironic. Dan Smith and Julia Kreger of Red Hat and Jay Faulkner of G-Research noticed a vulnerability in image processing for Ironic, in which a specially crafted image could be used by an authenticated user to exploit undesired behaviors in qemu-img, including possible unauthorized access to potentially sensitive data.

In case of Metal3, the vulnerability can be triggered by supplying a malicious image into the image.url field of BareMetalHost. It may allow the attacker to gain access to the container where Ironic is running.

Patches

Operators should upgrade their Ironic image to at least version v24.0.1, v24.1.2, v25.0.1 or v26.0.1, depending on which release series they are using. Users of older releases series are urgently advised to upgrade to a supported one.

Additionally, operators should upgrade their IPA (ironic-python-agent) images to the latest version. In Metal3, when ironic-ipa-downloader is used, it is enough to remove any local caches (e.g. a host volume) and restart the ironic-ipa-downloader container as Metal3 by default uses latest IPA images.

It is important to note that the Ironic fix changes the supported image formats to QCOW2 and RAW images, while Metal3 declares support for VMDK and VDI images too. The users are highly advised to only use QCOW2 and RAW images since only they are tested by the Ironic and Metal3 projects. If it is not possible, Ironic image can be started with the environment variable OS_CONDUCTOR__PERMITTED_IMAGE_FORMATS set to raw,qcow2,iso,vmdk,vdi.

Workarounds

No known workarounds.

References

Severity

Moderate

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Adjacent
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
None
Availability
None

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:A/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N

CVE ID

CVE-2024-44082

Weaknesses

No CWEs