CVE-2016-5403
Medium · 5.5CVSS
5.5
EPSS
0.5%
Published
Aug 2, 2016
CISA due date
—
Cloudanix analysis
A flaw in the virtualization software allows someone already in control of a virtual machine to make the host system run out of memory and crash, taking the virtual machine offline.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Denial Of Service
- Component
- Application
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The virtqueue_pop function in QEMU's virtio implementation permits a local guest administrator to submit virtio requests without corresponding completions, resulting in unbounded memory allocation within the QEMU process that eventually triggers a crash.
Why it matters to the business
Virtual machine instances can be rendered unavailable through resource exhaustion, disrupting hosted services and requiring administrative intervention to restart affected QEMU processes across multiple platforms including Red Hat, Debian, Ubuntu, and Oracle distributions.
How an attack unfolds
An attacker with administrative privileges inside a guest operating system crafts a sequence of virtio requests that are enqueued but never completed, steadily consuming host memory allocated to the QEMU process until it terminates.
How to fix it
Upgrade QEMU to a version containing the virtqueue_pop fix on all affected platforms; apply the corresponding vendor updates for Red Hat Enterprise Linux, Ubuntu, Debian, Oracle Linux, and related virtualization products.
How to confirm the fix worked
Verify QEMU version numbers against vendor advisories, review virtio-related source changes, and confirm that guest-initiated request flooding no longer produces unbounded memory growth in the QEMU process.
Typical attack path
- Obtain local administrator access inside a virtual machine guest
- Interact directly with virtio devices exposed by QEMU
- Submit repeated virtqueue requests while suppressing completion notifications
- Monitor QEMU memory consumption until the process crashes or becomes unresponsive
How to detect it
Examine QEMU process memory statistics and system logs for repeated virtio request submissions without completions; correlate guest administrative actions with host-level memory exhaustion events.
What your security team should do
- Apply available QEMU updates across all hypervisor hosts as the primary remediation
- Restrict administrative access inside guest operating systems to the minimum necessary personnel
- Monitor QEMU process memory usage for sudden spikes originating from individual guests
- Review virtualization platform logs for repeated virtio request patterns that deviate from normal workloads
The record
The virtqueue_pop function in hw/virtio/virtio.c in QEMU allows local guest OS administrators to cause a denial of service (memory consumption and QEMU process crash) by submitting requests without waiting for completion.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Alpine:v3.10 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.11 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.12 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.13 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.14 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.15 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.16 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.17 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.18 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.19 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.20 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.21 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.22 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.4 | xen | 0 | 4.6.3-r1 |
| Alpine:v3.5 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.6 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.7 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.8 | xen | 0 | 4.7.0-r0 |
| Alpine:v3.9 | xen | 0 | 4.7.0-r0 |
| Debian:11 | qemu | 0 | 1:2.6+dfsg-3.1 |
| Debian:12 | qemu | 0 | 1:2.6+dfsg-3.1 |
| Debian:13 | qemu | 0 | 1:2.6+dfsg-3.1 |
| Debian:7 | qemu | 0 | 1.1.2+dfsg-6+deb7u14 |
| Debian:7 | qemu-kvm | 0 | 1.1.2+dfsg-6+deb7u14 |
| Debian:8 | qemu | 0 | 1:2.1+dfsg-12+deb8u12 |
| Mageia:5 | xen | 0 | 4.5.5-1.1.mga5 |
| Red Hat:enterprise_linux:6::client | qemu-guest-agent | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::client | qemu-img | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::client | qemu-kvm | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::client | qemu-kvm-debuginfo | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::client | qemu-kvm-tools | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::computenode | qemu-guest-agent | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::computenode | qemu-img | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::computenode | qemu-kvm | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::computenode | qemu-kvm-debuginfo | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::computenode | qemu-kvm-tools | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::hypervisor | qemu-img-rhev | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::hypervisor | qemu-kvm-rhev | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::hypervisor | qemu-kvm-rhev-debuginfo | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::hypervisor | qemu-kvm-rhev-tools | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::server | qemu-guest-agent | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::server | qemu-img | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::server | qemu-kvm | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::server | qemu-kvm-debuginfo | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::server | qemu-kvm-tools | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::workstation | qemu-guest-agent | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::workstation | qemu-img | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::workstation | qemu-kvm | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::workstation | qemu-kvm-debuginfo | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:6::workstation | qemu-kvm-tools | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:enterprise_linux:7::client | libcacard | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::client | libcacard-devel | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::client | libcacard-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::client | qemu-img | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::client | qemu-kvm | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::client | qemu-kvm-common | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::client | qemu-kvm-debuginfo | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::client | qemu-kvm-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | libcacard | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | libcacard-devel | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | libcacard-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | qemu-img | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | qemu-kvm | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | qemu-kvm-common | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | qemu-kvm-debuginfo | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::computenode | qemu-kvm-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::hypervisor | libcacard-devel-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::hypervisor | libcacard-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::hypervisor | libcacard-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::hypervisor | qemu-img-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::hypervisor | qemu-kvm-common-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::hypervisor | qemu-kvm-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::hypervisor | qemu-kvm-rhev-debuginfo | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::hypervisor | qemu-kvm-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:enterprise_linux:7::server | libcacard | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::server | libcacard-devel | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::server | libcacard-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::server | qemu-img | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::server | qemu-kvm | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::server | qemu-kvm-common | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::server | qemu-kvm-debuginfo | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::server | qemu-kvm-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | libcacard | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | libcacard-devel | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | libcacard-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | qemu-img | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | qemu-kvm | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | qemu-kvm-common | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | qemu-kvm-debuginfo | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:enterprise_linux:7::workstation | qemu-kvm-tools | 0 | 10:1.5.3-105.el7_2.7 |
| Red Hat:openstack:5::el6 | qemu-img-rhev | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:openstack:5::el6 | qemu-kvm-rhev | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:openstack:5::el6 | qemu-kvm-rhev-debuginfo | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:openstack:5::el6 | qemu-kvm-rhev-tools | 0 | 2:0.12.1.2-2.491.el6_8.3 |
| Red Hat:openstack:5::el7 | libcacard-devel-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:5::el7 | libcacard-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:5::el7 | libcacard-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:5::el7 | qemu-img-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:5::el7 | qemu-kvm-common-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:5::el7 | qemu-kvm-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:5::el7 | qemu-kvm-rhev-debuginfo | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:5::el7 | qemu-kvm-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | libcacard-devel-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | libcacard-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | libcacard-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | qemu-img-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | qemu-kvm-common-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | qemu-kvm-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | qemu-kvm-rhev-debuginfo | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:6::el7 | qemu-kvm-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:7::el7 | libcacard-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:7::el7 | libcacard-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:7::el7 | qemu-img-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:7::el7 | qemu-kvm-common-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:7::el7 | qemu-kvm-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:7::el7 | qemu-kvm-rhev-debuginfo | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:7::el7 | qemu-kvm-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:8::el7 | libcacard-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:8::el7 | libcacard-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:8::el7 | qemu-img-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:8::el7 | qemu-kvm-common-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:8::el7 | qemu-kvm-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:8::el7 | qemu-kvm-rhev-debuginfo | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:8::el7 | qemu-kvm-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:9::el7 | libcacard-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:9::el7 | libcacard-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:9::el7 | qemu-img-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:9::el7 | qemu-kvm-common-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:9::el7 | qemu-kvm-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:9::el7 | qemu-kvm-rhev-debuginfo | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:openstack:9::el7 | qemu-kvm-tools-rhev | 0 | 10:2.3.0-31.el7_2.21 |
| Red Hat:rhel_virtualization:5::client | kmod-kvm | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::client | kmod-kvm-debug | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::client | kvm | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::client | kvm-debuginfo | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::client | kvm-qemu-img | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::client | kvm-tools | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::server | kmod-kvm | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::server | kmod-kvm-debug | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::server | kvm | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::server | kvm-debuginfo | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::server | kvm-qemu-img | 0 | 0:83-276.el5_11 |
| Red Hat:rhel_virtualization:5::server | kvm-tools | 0 | 0:83-276.el5_11 |
| SUSE:Linux Enterprise Desktop 12 SP1 | qemu | 0 | 2.3.1-21.1 |
| SUSE:Linux Enterprise Desktop 12 SP1 | xen | 0 | 4.5.3_08-17.1 |
| SUSE:Linux Enterprise Point of Sale 11 SP3 | xen | 0 | 4.2.5_21-27.1 |
| SUSE:Linux Enterprise Server 11 SP3-LTSS | xen | 0 | 4.2.5_21-27.1 |
| SUSE:Linux Enterprise Server 11 SP4 | kvm | 0 | 1.4.2-47.1 |
| SUSE:Linux Enterprise Server 11 SP4 | xen | 0 | 4.4.4_07-37.1 |
| SUSE:Linux Enterprise Server 12 SP1 | qemu | 0 | 2.3.1-21.1 |
| SUSE:Linux Enterprise Server 12 SP1 | xen | 0 | 4.5.3_08-17.1 |
| SUSE:Linux Enterprise Server 12-LTSS | qemu | 0 | 2.0.2-48.22.1 |
| SUSE:Linux Enterprise Server 12-LTSS | xen | 0 | 4.4.4_04-22.22.2 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | kvm | 0 | 1.4.2-47.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | xen | 0 | 4.4.4_07-37.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | qemu | 0 | 2.0.2-48.22.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | xen | 0 | 4.4.4_04-22.22.2 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | qemu | 0 | 2.3.1-21.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 SP1 | xen | 0 | 4.5.3_08-17.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | xen | 0 | 4.4.4_07-37.1 |
| SUSE:Linux Enterprise Software Development Kit 12 SP1 | xen | 0 | 4.5.3_08-17.1 |
| SUSE:Manager 2.1 | xen | 0 | 4.2.5_21-27.1 |
| SUSE:Manager Proxy 2.1 | xen | 0 | 4.2.5_21-27.1 |
| SUSE:OpenStack Cloud 5 | xen | 0 | 4.2.5_21-27.1 |
| Ubuntu:14.04:LTS | qemu | 0 | 2.0.0+dfsg-2ubuntu1.30 |
| Ubuntu:14.04:LTS | qemu | 0 | 2.0.0+dfsg-2ubuntu1.26 |
| Ubuntu:14.04:LTS | xen | 0 | 4.4.2-0ubuntu0.14.04.7 |
| Ubuntu:16.04:LTS | qemu | 0 | 1:2.5+dfsg-5ubuntu10.6 |
| Ubuntu:16.04:LTS | qemu | 0 | 1:2.5+dfsg-5ubuntu10.3 |
| openSUSE:Tumbleweed | qemu | 0 | 2.6.1-1.5 |
Related vulnerabilities
- CVE-2019-11135 TSX Asynchronous Abort condition on some CPUs utilizing speculative execution may allow… Also affects xen
- CVE-2018-12126 Microarchitectural Store Buffer Data Sampling (MSBDS): Store buffers on some… Also affects xen
- CVE-2018-3620 Systems with microprocessors utilizing speculative execution and address translations may… Also affects xen
- CVE-2018-3639 Systems with microprocessors utilizing speculative execution and speculative execution of… Also affects xen
- CVE-2017-10911 The make_response function in drivers/block/xen-blkback/blkback.c in the Linux kernel… Also affects xen
- CVE-2024-2201 A cross-privilege Spectre v2 vulnerability allows attackers to bypass all deployed… Also affects xen
- CVE-2024-2193 A Speculative Race Condition (SRC) vulnerability that impacts modern CPU architectures… Also affects xen
- CVE-2023-28746 Information exposure through microarchitectural state after transient execution from some… Also affects xen