Cloudanix VulnDB

CVE-2015-3214

None

CVSS

—

EPSS

1.6%

Published

Aug 31, 2015

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

An old bug in software that runs virtual machines could let one virtual machine break out and take over the entire computer it is running on.

Exploit Available
Exploitation
Local Privilege
Attacker needs
Local User
Complexity
Moderate
Impact
Full Compromise
Component
OS kernel
Class
Memory Corruption
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

The pit_ioport_read function fails to separate read and write length handling and accepts an invalid index into internal state structures, resulting in out-of-bounds memory access that can be leveraged for code execution in the host context.

Why it matters to the business

In virtualized or cloud environments running unpatched kernels or QEMU, a compromised or malicious guest can fully take over the host system, exposing all other guests, data, and infrastructure to attacker control; the flaw has been public for many years with working exploits available, though most modern deployments have already applied fixes.

How an attack unfolds

An attacker with code execution inside a guest OS crafts I/O port accesses to the emulated 8254 PIT timer that supply mismatched read/write lengths and an invalid index; this triggers the flawed path in the host-side emulation code, corrupting memory and allowing the attacker to execute arbitrary code with host privileges.

How to fix it

Upgrade the Linux kernel to version 2.6.33 or later and QEMU to 2.3.1 or later; apply all vendor-supplied backports for the specific distributions listed in the affected products; where upgrades are impossible, isolate untrusted guests on dedicated hosts and disable unnecessary I/O port exposure.

How to confirm the fix worked

Verify that running kernel and QEMU binaries are at or above the fixed versions; confirm the vulnerable i8254.c code path is no longer present by inspecting source or package changelogs; re-test guest-to-host isolation with known proof-of-concept I/O sequences if available in a lab environment.

Typical attack path

  1. Gain code execution inside a guest virtual machine
  2. Issue crafted I/O port reads/writes against the PIT device
  3. Trigger use of an invalid index in pit_ioport_read
  4. Achieve out-of-bounds read/write in host memory
  5. Escalate to arbitrary code execution on the host

How to detect it

Review hypervisor and kernel logs for unusual PIT I/O port activity originating from guests; look for process crashes or memory-corruption indicators inside QEMU or KVM worker processes shortly after guest I/O operations; correlate guest-initiated timer-port accesses with subsequent host-side anomalies.

What your security team should do

  • Immediately inventory all systems running QEMU or Linux kernels older than the fixed versions
  • Prioritize patching of any internet-facing or multi-tenant virtualization hosts
  • Remove or tightly restrict guest access to PIT I/O ports where feasible
  • Monitor EPSS and exploit-availability feeds for any resurgence in interest

The record

The pit_ioport_read in i8254.c in the Linux kernel before 2.6.33 and QEMU before 2.3.1 does not distinguish between read lengths and write lengths, which might allow guest OS users to execute arbitrary code on the host OS by triggering use of an invalid index.

Affected packages

Ecosystem Package Introduced Fixed
Debian:11 qemu 0 1:2.4+dfsg-1a
Debian:11 xen 0 4.4.0-1
Debian:12 qemu 0 1:2.4+dfsg-1a
Debian:12 xen 0 4.4.0-1
Debian:13 qemu 0 1:2.4+dfsg-1a
Debian:13 xen 0 4.4.0-1
Debian:8 qemu 0 1:2.1+dfsg-12+deb8u2
Mageia:4 qemu 0 1.6.2-1.12.mga4
Mageia:5 qemu 0 2.1.3-2.3.mga5
Red Hat:enterprise_linux:7::client libcacard 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::client libcacard-devel 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::client libcacard-tools 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::client qemu-img 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::client qemu-kvm 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::client qemu-kvm-common 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::client qemu-kvm-debuginfo 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::client qemu-kvm-tools 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode libcacard 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode libcacard-devel 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode libcacard-tools 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode qemu-img 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode qemu-kvm 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode qemu-kvm-common 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode qemu-kvm-debuginfo 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::computenode qemu-kvm-tools 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::hypervisor libcacard-devel-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::hypervisor libcacard-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::hypervisor libcacard-tools-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::hypervisor qemu-img-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::hypervisor qemu-kvm-common-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::hypervisor qemu-kvm-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::hypervisor qemu-kvm-rhev-debuginfo 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::hypervisor qemu-kvm-tools-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:enterprise_linux:7::server libcacard 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::server libcacard-devel 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::server libcacard-tools 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::server qemu-img 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::server qemu-kvm 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::server qemu-kvm-common 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::server qemu-kvm-debuginfo 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::server qemu-kvm-tools 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation libcacard 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation libcacard-devel 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation libcacard-tools 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation qemu-img 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation qemu-kvm 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation qemu-kvm-common 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation qemu-kvm-debuginfo 0 10:1.5.3-86.el7_1.5
Red Hat:enterprise_linux:7::workstation qemu-kvm-tools 0 10:1.5.3-86.el7_1.5
Red Hat:openstack:5::el7 libcacard-devel-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:5::el7 libcacard-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:5::el7 libcacard-tools-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:5::el7 qemu-img-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:5::el7 qemu-kvm-common-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:5::el7 qemu-kvm-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:5::el7 qemu-kvm-rhev-debuginfo 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:5::el7 qemu-kvm-tools-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 libcacard-devel-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 libcacard-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 libcacard-tools-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 qemu-img-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 qemu-kvm-common-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 qemu-kvm-rhev 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 qemu-kvm-rhev-debuginfo 0 10:2.1.2-23.el7_1.6
Red Hat:openstack:6::el7 qemu-kvm-tools-rhev 0 10:2.1.2-23.el7_1.6
SUSE:Linux Enterprise Desktop 12 qemu 0 2.0.2-48.19.1
SUSE:Linux Enterprise Server 11 SP3-LTSS kvm 0 1.4.2-46.1
SUSE:Linux Enterprise Server 11 SP3-TERADATA kvm 0 1.4.2-46.1
SUSE:Linux Enterprise Server 11 SP4 kvm 0 1.4.2-44.1
SUSE:Linux Enterprise Server 12 qemu 0 2.0.2-48.19.1
SUSE:Linux Enterprise Server for SAP Applications 11 SP4 kvm 0 1.4.2-44.1
SUSE:Linux Enterprise Server for SAP Applications 12 qemu 0 2.0.2-48.19.1
Ubuntu:14.04:LTS qemu 0 2.0.0+dfsg-2ubuntu1.15

Related vulnerabilities