====================================================================                   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://access.redhat.com/errata/RHSA-2010:0088.html
Issue date:        2010-02-09
CVE Names:         CVE-2010-0297 CVE-2010-0298 CVE-2010-0306 
                   CVE-2010-0309 
====================================================================
1. Summary:

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

3. Description:

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,
CVE-2010-0306)

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.
(CVE-2010-0309)

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.
(BZ#553249)

* QEMU could terminate randomly with virtio-net and SMP enabled.
(BZ#561022)

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.

4. Solution:

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
effect:

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):

Source:

x86_64:
kmod-kvm-83-105.el5_4.22.x86_64.rpm
kvm-83-105.el5_4.22.x86_64.rpm
kvm-debuginfo-83-105.el5_4.22.x86_64.rpm
kvm-qemu-img-83-105.el5_4.22.x86_64.rpm
kvm-tools-83-105.el5_4.22.x86_64.rpm

RHEL Virtualization (v. 5 server):

Source:

x86_64:
kmod-kvm-83-105.el5_4.22.x86_64.rpm
kvm-83-105.el5_4.22.x86_64.rpm
kvm-debuginfo-83-105.el5_4.22.x86_64.rpm
kvm-qemu-img-83-105.el5_4.22.x86_64.rpm
kvm-tools-83-105.el5_4.22.x86_64.rpm

These packages are GPG signed by Red Hat for security.  Our key and 
details on how to verify the signature are available from
https://www.redhat.com/security/team/key/#package

7. References:

https://www.redhat.com/security/data/cve/CVE-2010-0297.html
https://www.redhat.com/security/data/cve/CVE-2010-0298.html
https://www.redhat.com/security/data/cve/CVE-2010-0306.html
https://www.redhat.com/security/data/cve/CVE-2010-0309.html
http://www.redhat.com/security/updates/classification/#important

8. Contact:

The Red Hat security contact is .  More contact
details at https://www.redhat.com/security/team/contact/

Copyright 2010 Red Hat, Inc.

RedHat: kvm security and bug fix update

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 ...

Summary

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, CVE-2010-0306)
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. (CVE-2010-0309)
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. (BZ#553249)
* QEMU could terminate randomly with virtio-net and SMP enabled. (BZ#561022)
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.



Summary


Solution

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 effect:
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.

References

https://www.redhat.com/security/data/cve/CVE-2010-0297.html https://www.redhat.com/security/data/cve/CVE-2010-0298.html https://www.redhat.com/security/data/cve/CVE-2010-0306.html https://www.redhat.com/security/data/cve/CVE-2010-0309.html http://www.redhat.com/security/updates/classification/#important

Package List

RHEL Desktop Multi OS (v. 5 client):
Source:
x86_64: kmod-kvm-83-105.el5_4.22.x86_64.rpm kvm-83-105.el5_4.22.x86_64.rpm kvm-debuginfo-83-105.el5_4.22.x86_64.rpm kvm-qemu-img-83-105.el5_4.22.x86_64.rpm kvm-tools-83-105.el5_4.22.x86_64.rpm
RHEL Virtualization (v. 5 server):
Source:
x86_64: kmod-kvm-83-105.el5_4.22.x86_64.rpm kvm-83-105.el5_4.22.x86_64.rpm kvm-debuginfo-83-105.el5_4.22.x86_64.rpm kvm-qemu-img-83-105.el5_4.22.x86_64.rpm kvm-tools-83-105.el5_4.22.x86_64.rpm
These packages are GPG signed by Red Hat for security. Our key and details on how to verify the signature are available from https://www.redhat.com/security/team/key/#package


Severity
Advisory ID: RHSA-2010:0088-02
Product: Red Hat Enterprise Linux
Advisory URL: https://access.redhat.com/errata/RHSA-2010:0088.html
Issued Date: : 2010-02-09
CVE Names: CVE-2010-0297 CVE-2010-0298 CVE-2010-0306 CVE-2010-0309

Topic

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.


Topic


 

Relevant Releases Architectures

RHEL Desktop Multi OS (v. 5 client) - x86_64

RHEL Virtualization (v. 5 server) - x86_64


Bugs Fixed

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


Related News