CVE-2015-3247
NoneCVSS
—
EPSS
1.1%
Published
Sep 8, 2015
CISA due date
—
Cloudanix analysis
A flaw in graphics software used by virtual machines can let someone inside one machine crash or take over the computer running all the machines.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Remote Code Execution
- Component
- Library
- Class
- Memory Corruption
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Race condition in worker_update_monitors_config enables heap-based memory corruption from an authenticated guest, allowing denial of service via QEMU-KVM crash or potential arbitrary code execution on the host.
Why it matters to the business
Successful exploitation can crash the hypervisor, causing downtime for all hosted virtual machines and creating a path for attackers to gain control of the underlying host system.
How an attack unfolds
An attacker with guest access repeatedly triggers monitor configuration updates to win the race condition, corrupting heap memory and either crashing the QEMU process or leveraging the corruption to execute code outside the guest boundary.
How to fix it
Upgrade SPICE to a version containing the fix for the race condition in worker_update_monitors_config and apply corresponding updates to affected Red Hat Enterprise Linux packages.
How to confirm the fix worked
Verify the installed SPICE version is newer than 0.12.4, confirm the worker_update_monitors_config function contains synchronization fixes, and test that monitor reconfiguration no longer produces crashes under concurrent load.
Typical attack path
- Obtain authenticated access inside a guest VM using SPICE
- Repeatedly invoke monitor configuration updates to exploit the race
- Trigger heap corruption leading to QEMU-KVM crash or code execution on host
How to detect it
Inspect QEMU and SPICE logs for repeated monitor configuration calls followed by heap corruption errors or abrupt process termination; correlate guest authentication events with subsequent host-level crashes.
What your security team should do
- Prioritize patching SPICE on all hypervisor hosts due to potential host compromise
- Restrict SPICE access to trusted guests only and monitor for unusual monitor configuration activity
- Review hypervisor logs for unexplained QEMU crashes and schedule upgrades during the next maintenance window
The record
Race condition in the worker_update_monitors_config function in SPICE 0.12.4 allows a remote authenticated guest user to cause a denial of service (heap-based memory corruption and QEMU-KVM crash) or possibly execute arbitrary code on the host via unspecified vectors.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| Debian:11 | spice | 0 | 0.12.5-1.2 |
| Debian:12 | spice | 0 | 0.12.5-1.2 |
| Debian:13 | spice | 0 | 0.12.5-1.2 |
| Debian:8 | spice | 0 | 0.12.5-1+deb8u1 |
| Mageia:4 | spice | 0 | 0.12.4-4.1.mga4 |
| Mageia:5 | spice | 0 | 0.12.5-2.1.mga5 |
| Red Hat:enterprise_linux:6::client | spice-server | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::client | spice-server-debuginfo | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::client | spice-server-devel | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::computenode | spice-server | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::computenode | spice-server-debuginfo | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::computenode | spice-server-devel | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::hypervisor | rhev-hypervisor6 | 0 | 0:6.7-20150828.0.el6ev |
| Red Hat:enterprise_linux:6::hypervisor | rhev-hypervisor7 | 0 | 0:7.1-20150827.1.el6ev |
| Red Hat:enterprise_linux:6::server | spice-server | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::server | spice-server-debuginfo | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::server | spice-server-devel | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::workstation | spice-server | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::workstation | spice-server-debuginfo | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:6::workstation | spice-server-devel | 0 | 0:0.12.4-12.el6_7.1 |
| Red Hat:enterprise_linux:7::client | spice | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::client | spice-debuginfo | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::client | spice-server | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::client | spice-server-devel | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::computenode | spice | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::computenode | spice-debuginfo | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::computenode | spice-server | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::computenode | spice-server-devel | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::hypervisor | rhev-hypervisor7 | 0 | 0:7.1-20150827.1.el7ev |
| Red Hat:enterprise_linux:7::server | spice | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::server | spice-debuginfo | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::server | spice-server | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::server | spice-server-devel | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::workstation | spice | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::workstation | spice-debuginfo | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::workstation | spice-server | 0 | 0:0.12.4-9.el7_1.1 |
| Red Hat:enterprise_linux:7::workstation | spice-server-devel | 0 | 0:0.12.4-9.el7_1.1 |
| SUSE:Linux Enterprise Desktop 12 | spice | 0 | 0.12.4-8.5.1 |
| SUSE:Linux Enterprise Server 11 SP4 | spice | 0 | 0.12.4-5.1 |
| SUSE:Linux Enterprise Server 12 | spice | 0 | 0.12.4-8.5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 11 SP4 | spice | 0 | 0.12.4-5.1 |
| SUSE:Linux Enterprise Server for SAP Applications 12 | spice | 0 | 0.12.4-8.5.1 |
| SUSE:Linux Enterprise Software Development Kit 11 SP4 | spice | 0 | 0.12.4-5.1 |
| SUSE:Linux Enterprise Software Development Kit 12 | spice | 0 | 0.12.4-8.5.1 |
| Ubuntu:14.04:LTS | spice | 0 | 0.12.4-0nocelt2ubuntu1.1 |
| openSUSE:Tumbleweed | spice | 0 | 0.12.8-2.1 |
Related vulnerabilities
- CVE-2017-7506 spice versions though 0.13 are vulnerable to out-of-bounds memory access when processing… Also affects spice
- CVE-2016-0749 The smartcard interaction in SPICE allows remote attackers to cause a denial of service… Also affects spice
- CVE-2015-5260 Heap-based buffer overflow in SPICE before 0.12.6 allows guest OS users to cause a denial… Also affects spice
- CVE-2015-7547 Multiple stack-based buffer overflows in the (1) send_dg and (2) send_vc functions in the… Also affects rhev-hypervisor6
- CVE-2015-3456 The Floppy Disk Controller (FDC) in QEMU, as used in Xen 4.5.x and earlier and KVM… Also affects rhev-hypervisor6
- CVE-2015-0235 Heap-based buffer overflow in the __nss_hostname_digits_dots function in glibc 2.2, and… Also affects rhev-hypervisor6
- CVE-2014-8138 Heap-based buffer overflow in the jp2_decode function in JasPer 1.900.1 and earlier… Also affects rhev-hypervisor6
- CVE-2014-8137 Double free vulnerability in the jas_iccattrval_destroy function in JasPer 1.900.1 and… Also affects rhev-hypervisor6