CVE-2024-26327
Medium · 5.3CVSS
5.3
EPSS
0.6%
Published
Feb 19, 2024
CISA due date
—
Cloudanix analysis
A flaw in certain virtualization helper tools can let a contained program crash the host system by sending bad configuration values.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Denial Of Service
- Component
- Application
- Class
- Buffer Overflow
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Mishandling of NumVFs greater than TotalVFs in register_vfs leads to a buffer overflow in VF implementations.
Why it matters to the business
Virtualization or container environments may experience crashes or denial of service, with potential for broader operational disruption if unpatched components remain in use across many systems.
How an attack unfolds
An attacker with access to a guest environment writes an invalid NumVFs value exceeding TotalVFs, triggering the buffer overflow in the affected register_vfs logic.
How to fix it
Upgrade bubblewrap to version 0.10.0-r0 or later, or update containers/bubblewrap to commit 68e75c3091c87583c28a439b45c45627a94d622c; apply patches promptly given the widespread use of affected packages.
How to confirm the fix worked
Confirm the installed package version matches or exceeds the listed fixed versions and test that NumVFs writes exceeding TotalVFs no longer cause overflows in controlled environments.
Typical attack path
- Obtain guest-level access in an affected virtualization setup
- Issue a write of NumVFs greater than TotalVFs via the SR-IOV interface
- Trigger buffer overflow in VF implementation leading to memory corruption
- Cause denial of service or attempt further exploitation of corrupted state
How to detect it
Review system and package logs for unexpected crashes or errors related to VF registration; examine process activity around QEMU or bubblewrap invocations for anomalous NumVFs handling.
What your security team should do
- Prioritize patching bubblewrap and dependent container images to the fixed versions
- Scan environments for older bubblewrap packages and schedule upgrades
- Monitor for any downstream dependents that may still carry vulnerable versions
The record
An issue was discovered in QEMU 7.1.0 through 8.2.1. register_vfs in hw/pci/pcie_sriov.c mishandles the situation where a guest writes NumVFs greater than TotalVFs, leading to a buffer overflow in VF implementations.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:9 | qemu-guest-agent | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-img | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-audio-pa | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-block-blkio | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-block-curl | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-block-rbd | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-common | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-core | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-device-display-virtio-gpu | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-device-display-virtio-gpu-ccw | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-device-display-virtio-gpu-pci | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-device-display-virtio-vga | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-device-usb-host | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-device-usb-redirect | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-docs | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-tools | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-ui-egl-headless | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-kvm-ui-opengl | 0 | 17:9.0.0-10.el9_5 |
| AlmaLinux:9 | qemu-pr-helper | 0 | 17:9.0.0-10.el9_5 |
| Debian:12 | qemu | 0 | 1:7.2+dfsg-7+deb12u6 |
| Debian:13 | qemu | 0 | 1:8.2.3+ds-1 |
| Mageia:9 | qemu | 0 | 7.2.15-1.mga9 |
| Red Hat:enterprise_linux:9::appstream | qemu-guest-agent | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-guest-agent-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-img | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-img-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-audio-dbus-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-audio-pa | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-audio-pa-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-block-blkio | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-block-blkio-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-block-curl | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-block-curl-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-block-rbd | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-block-rbd-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-common | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-common-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-core | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-core-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-debugsource | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-gpu | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-gpu-ccw | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-gpu-ccw-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-gpu-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-gpu-pci | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-gpu-pci-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-vga | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-display-virtio-vga-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-usb-host | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-usb-host-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-usb-redirect | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-device-usb-redirect-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-docs | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-tests-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-tools | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-tools-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-ui-dbus-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-ui-egl-headless | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-ui-egl-headless-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-ui-opengl | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-kvm-ui-opengl-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-pr-helper | 0 | 17:9.0.0-10.el9_5 |
| Red Hat:enterprise_linux:9::appstream | qemu-pr-helper-debuginfo | 0 | 17:9.0.0-10.el9_5 |
| Rocky Linux:9 | qemu-kvm | 0 | 7:9.0.0-10.el9_5.2 |
| SUSE:Linux Enterprise Micro 5.5 | qemu | 0 | 7.1.0-150500.49.12.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP5 | qemu | 0 | 7.1.0-150500.49.12.1 |
| SUSE:Linux Enterprise Module for Package Hub 15 SP5 | qemu | 0 | 7.1.0-150500.49.12.1 |
| SUSE:Linux Enterprise Module for Server Applications 15 SP5 | qemu | 0 | 7.1.0-150500.49.12.1 |
| Ubuntu:20.04:LTS | qemu | 0 | No fix |
| Ubuntu:22.04:LTS | qemu | 0 | No fix |
| Ubuntu:24.04:LTS | qemu | 0 | No fix |
| Ubuntu:24.04:LTS | qemu | 0 | 1:8.2.2+ds-0ubuntu1.2 |
| Ubuntu:24.10 | qemu | 0 | 1:9.0.2+ds-4ubuntu2 |
| Ubuntu:Pro:14.04:LTS | qemu | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | qemu | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | qemu | 0 | No fix |
| openSUSE:Leap 15.5 | qemu | 0 | 7.1.0-150500.49.12.1 |
Related vulnerabilities
- CVE-2024-7409 A flaw was found in the QEMU NBD Server. Also affects qemu-guest-agent
- CVE-2024-4467 A flaw was found in the QEMU disk image utility (qemu-img) 'info' command. Also affects qemu-guest-agent
- CVE-2024-3446 A double free vulnerability was found in QEMU virtio devices (virtio-gpu… Also affects qemu-guest-agent
- CVE-2023-3019 A DMA reentrancy issue leading to a use-after-free error was found in the e1000e NIC… Also affects qemu-guest-agent
- CVE-2024-7730 A heap buffer overflow was found in the virtio-snd device in QEMU. Also affects qemu
- CVE-2024-3447 A heap-based buffer overflow was found in the SDHCI device emulation of QEMU. Also affects qemu
- CVE-2024-6519 A use-after-free vulnerability was found in the QEMU LSI53C895A SCSI Host Bus Adapter… Also affects qemu
- CVE-2024-8612 A flaw was found in QEMU, in the virtio-scsi, virtio-blk, and virtio-crypto devices. Also affects qemu