(Red Hat Issues Fix) KVM Structure Initialization Error Lets Local Users Obtain Portions of Kernel Memory
SecurityTracker Alert ID: 1024914|
SecurityTracker URL: http://securitytracker.com/id/1024914
(Links to External Site)
Date: Dec 20 2010
Disclosure of system information|
Fix Available: Yes Vendor Confirmed: Yes |
A vulnerability was reported in KVM. A local user can obtain portions of kernel memory.|
Some structure padding and reserved fields in certain data structures in QEMU-KVM are not properly initialized. A privileged local host user with access to '/dev/kvm' can obtain portions of kernel stack memory.
The kvm_vcpu_events, kvm_debugregs, kvm_pit_state2, and kvm_clock_data structures are affected.
A local privilege host user can obtain portions of kernel memory.|
Red Hat has issued a fix.|
The Red Hat advisory is available at:
Vendor URL: kernel.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:0998-01] Low: kvm security and bug fix update|
-----BEGIN PGP SIGNED MESSAGE-----
Red Hat Security Advisory
Synopsis: Low: kvm security and bug fix update
Advisory ID: RHSA-2010:0998-01
Product: Red Hat Enterprise Linux
Advisory URL: https://rhn.redhat.com/errata/RHSA-2010-0998.html
Issue date: 2010-12-20
CVE Names: CVE-2010-3881
Updated kvm packages that fix one security issue and three bugs are now
available for Red Hat Enterprise Linux 5.
The Red Hat Security Response Team has rated this update as having low
security impact. A Common Vulnerability Scoring System (CVSS) base score,
which gives a detailed severity rating, is available from the CVE link in
the References section.
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.
It was found that some structure padding and reserved fields in certain
data structures in QEMU-KVM were not initialized properly before being
copied to user-space. A privileged host user with access to "/dev/kvm"
could use this flaw to leak kernel stack memory to user-space.
Red Hat would like to thank Vasiliy Kulikov for reporting this issue.
This update also fixes the following bugs:
* The 'kvm_amd' kernel module did not initialize the TSC (Time Stamp
Counter) offset in the VMCB (Virtual Machine Control Block) correctly.
After a vCPU (virtual CPU) has been created, the TSC offset in the VMCB
should have a negative value so that the virtual machine will see TSC
values starting at zero. However, the TSC offset was set to zero and
therefore the virtual machine saw the same TSC value as the host. With this
update, the TSC offset has been updated to show the correct values.
* Setting the boot settings of a virtual machine to, firstly, boot from PXE
and, secondly, to boot from the hard drive would result in a PXE boot loop,
that is, the virtual machine would not continue to boot from the hard drive
if the PXE boot failed. This was caused by a flaw in the 'bochs-bios' (part
of KVM) code. With this update, after a virtual machine tries to boot from
PXE and fails, it continues to boot from a hard drive if there is one
* If a 64-bit Red Hat Enterprise Linux 5.5 virtual machine was migrated to
another host with a different CPU clock speed, the clock of that virtual
machine would consistently lose or gain time (approximately half a second
for every second the host is running). On machines that do not use the kvm
clock, the network time protocol daemon (ntpd) could correct the time
drifts caused by migration. However, using the pvclock caused the time to
change consistently. This was due to flaws in the save/load functions of
pvclock. With this update, the issue has been fixed and migrating a virtual
machine no longer causes time drift. (BZ#660239)
All KVM users should upgrade to these updated packages, which contain
backported patches to correct 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/):
649920 - CVE-2010-3881 kvm: arch/x86/kvm/x86.c: reading uninitialized stack memory
656984 - TSC offset of virtual machines is not initialized correctly by 'kvm_amd' kernel module.
659850 - If VM boot seq. is set up as nc (PXE then disk) the VM is always stuck on trying to PXE boot
660239 - clock drift when migrating a guest between mis-matched CPU clock speed
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-----
RHSA-announce mailing list