(Red Hat Issues Fix) KVM x86 Emulator Bugs Let Local Users on the Guest System to Gain Privileges on the Target Guest System
SecurityTracker Alert ID: 1023576|
SecurityTracker URL: http://securitytracker.com/id/1023576
(Links to External Site)
Date: Feb 10 2010
User access via local system|
Fix Available: Yes Vendor Confirmed: Yes |
Two vulnerabilities were reported in KVM. A local user on the guest operating system can obtain elevated privileges on the target guest system.|
A local user on the guest operating system can cause the x86 emulator to modify arbitrary kernel memory locations [CVE-2010-0298].
A local user on the guest operating system can bypass IOPL/CPL checking to cause the emulator to execute privileged instructions [CVE-2010-0306].
Gleb Natapov reported these vulnerabilities.
A local user on the guest operating system can obtain elevated privileges on the target guest system.|
Red Hat has issued a fix.|
The Red Hat advisory is available at:
Vendor URL: linux-kvm.org/ (Links to External Site)
Access control error|
|Underlying OS: Linux (Red Hat Enterprise)|
|Underlying OS Comments: 5|
This archive entry is a follow-up to the message listed below.|
Source Message Contents
Subject: [RHSA-2010:0088-02] Important: kvm security and bug fix update|
-----BEGIN PGP SIGNED MESSAGE-----
Red Hat Security Advisory
Synopsis: Important: kvm security and bug fix update
Advisory ID: RHSA-2010:0088-02
Product: Red Hat Enterprise Linux
Advisory URL: https://rhn.redhat.com/errata/RHSA-2010-0088.html
Issue date: 2010-02-09
CVE Names: CVE-2010-0297 CVE-2010-0298 CVE-2010-0306
Updated kvm packages that fix multiple security issues and several bugs are
now available for Red Hat Enterprise Linux 5.
This update has been rated as having important security impact by the Red
Hat Security Response Team.
2. Relevant releases/architectures:
RHEL Desktop Multi OS (v. 5 client) - x86_64
RHEL Virtualization (v. 5 server) - x86_64
KVM (Kernel-based Virtual Machine) is a full virtualization solution for
Linux on AMD64 and Intel 64 systems. KVM is a Linux kernel module built for
the standard Red Hat Enterprise Linux kernel.
The x86 emulator implementation was missing a check for the Current
Privilege Level (CPL) and I/O Privilege Level (IOPL). A user in a guest
could leverage these flaws to cause a denial of service (guest crash) or
possibly escalate their privileges within that guest. (CVE-2010-0298,
A flaw was found in the Programmable Interval Timer (PIT) emulation. Access
to the internal data structure pit_state, which represents the data state
of the emulated PIT, was not properly validated in the pit_ioport_read()
function. A privileged guest user could use this flaw to crash the host.
A flaw was found in the USB passthrough handling code. A specially-crafted
USB packet sent from inside a guest could be used to trigger a buffer
overflow in the usb_host_handle_control() function, which runs under the
QEMU-KVM context on the host. A user in a guest could leverage this flaw to
cause a denial of service (guest hang or crash) or possibly escalate their
privileges within the host. (CVE-2010-0297)
This update also fixes the following bugs:
* pvclock MSR values were not preserved during remote migration, causing
time drift for guests. (BZ#537028)
* SMBIOS table 4 data is now generated for Windows guests. (BZ#545874)
* if the qemu-kvm "-net user" option was used, unattended Windows XP
installations did not receive an IP address after reboot. (BZ#546562)
* when being restored from migration, a race condition caused Windows
Server 2008 R2 guests to hang during shutdown. (BZ#546563)
* the kernel symbol checking on the kvm-kmod build process has a safety
check for ABI changes. (BZ#547293)
* on hosts without high-res timers, Windows Server 2003 guests experienced
significant time drift. (BZ#547625)
* in some situations, installing Windows Server 2008 R2 from an ISO image
resulted in a blue screen "BAD_POOL_HEADER" stop error. (BZ#548368)
* a bug in the grow_refcount_table() error handling caused infinite
recursion in some cases. This caused the qemu-kvm process to hang and
eventually crash. (BZ#552159)
* for Windows Server 2003 R2, Service Pack 2, 32-bit guests, an "unhandled
vm exit" error could occur during reboot on some systems. (BZ#552518)
* for Windows guests, QEMU could attempt to stop a stopped audio device,
resulting in a "snd_playback_stop: ASSERT playback_channel->base.active
failed" error. (BZ#552519)
* the Hypercall driver did not reset the device on power-down. (BZ#552528)
* mechanisms have been added to make older savevm versions to be emitted in
some cases. (BZ#552529)
* an error in the Makefile prevented users from using the source RPM to
install KVM. (BZ#552530)
* guests became unresponsive and could use up to 100% CPU when running
certain benchmark tests with more than 7 guests running simultaneously.
* QEMU could terminate randomly with virtio-net and SMP enabled.
All KVM users should upgrade to these updated packages, which contain
backported patches to resolve these issues. Note: The procedure in the
Solution section must be performed before this update will take effect.
Before applying this update, make sure all previously-released errata
relevant to your system have been applied.
This update is available via the Red Hat Network. Details on how to
use the Red Hat Network to apply this update are available at
The following procedure must be performed before this update will take
1) Stop all KVM guest virtual machines.
2) Either reboot the hypervisor machine or, as the root user, remove (using
"modprobe -r [module]") and reload (using "modprobe [module]") all of the
following modules which are currently running (determined using "lsmod"):
kvm, ksm, kvm-intel or kvm-amd.
3) Restart the KVM guest virtual machines.
5. Bugs fixed (http://bugzilla.redhat.com/):
537028 - pvclock msr values are not preserved across remote migration
545874 - Need to generate SMBIOS table 4 data for windows guests
546562 - Windows XP unattended install doesn't get an IP address after rebooting, if using -net user
546563 - Windows Server 2008 R2 shutdown hangs after restore from migration
547293 - kvm kmod package should filter only some specific ksym dependencies
547625 - time drift in win2k364 KVM guest
548368 - BSOD BAD_POOL_HEADER STOP 0x19 during boot of Windows Server 2008 R2 installer
552159 - qcow2: infinite recursion on grow_refcount_table() error handling
552518 - Rhev-Block driver causes 'unhandled vm exit' with 32bit win2k3r2sp2 Guest VM on restart
552519 - KVM : QEMU-Audio attempting to stop unactivated audio device (snd_playback_stop: ASSERT playback_channel->base.active failed).
552528 - Hypercall driver doesn't reset device on power-down
552529 - kvm: migration: mechanism to make older savevm versions to be emitted on some cases
552530 - Build tree for RHEL 5.X and RHEL 5.4.z contains build bugs
553249 - hypercall device - Vm becomes non responsive on Sysmark benchmark (when more than 7 vm's running simultaneously)
557025 - CVE-2010-0297 kvm-userspace-rhel5: usb-linux.c: fix buffer overflow
559091 - CVE-2010-0298 kvm: emulator privilege escalation
560654 - CVE-2010-0306 kvm: emulator privilege escalation IOPL/CPL level check
560887 - CVE-2010-0309 kvm: cat /dev/port in guest cause the host hang
561022 - QEMU terminates without warning with virtio-net and SMP enabled
6. Package List:
RHEL Desktop Multi OS (v. 5 client):
RHEL Virtualization (v. 5 server):
These packages are GPG signed by Red Hat for security. Our key and
details on how to verify the signature are available from
The Red Hat security contact is <firstname.lastname@example.org>. More contact
details at https://www.redhat.com/security/team/contact/
Copyright 2010 Red Hat, Inc.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.4 (GNU/Linux)
-----END PGP SIGNATURE-----
Enterprise-watch-list mailing list