RHEL 5 : libvirt (RHSA-2011:1019)

This script is Copyright (C) 2013-2014 Tenable Network Security, Inc.


Synopsis :

The remote Red Hat host is missing one or more security updates.

Description :

Updated libvirt packages that fix one security issue, several bugs and
add various enhancements are now available for Red Hat Enterprise
Linux 5.

The Red Hat Security Response Team has rated this update as having
moderate 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.

The libvirt library is a C API for managing and interacting with the
virtualization capabilities of Linux and other operating systems.

An integer overflow flaw was found in libvirtd's RPC call handling. An
attacker able to establish read-only connections to libvirtd could
trigger this flaw by calling virDomainGetVcpus() with
specially-crafted parameters, causing libvirtd to crash.
(CVE-2011-2511)

This update fixes the following bugs :

* libvirt was rebased from version 0.6.3 to version 0.8.2 in Red Hat
Enterprise Linux 5.6. A code audit found a minor API change that
effected error messages seen by libvirt 0.8.2 clients talking to
libvirt 0.7.1 â 0.7.7 (0.7.x) servers. A libvirt 0.7.x server could
send VIR_ERR_BUILD_FIREWALL errors where a libvirt 0.8.2 client
expected VIR_ERR_CONFIG_UNSUPPORTED errors. In other circumstances, a
libvirt 0.8.2 client saw a 'Timed out during operation' message where
it should see an 'Invalid network filter' error. This update adds a
backported patch that allows libvirt 0.8.2 clients to interoperate
with the API as used by libvirt 0.7.x servers, ensuring correct error
messages are sent. (BZ#665075)

* libvirt could crash if the maximum number of open file descriptors
(_SC_OPEN_MAX) grew larger than the FD_SETSIZE value because it
accessed file descriptors outside the bounds of the set. With this
update the maximum number of open file descriptors can no longer grow
larger than the FD_SETSIZE value. (BZ#665549)

* A libvirt race condition was found. An array in the libvirt event
handlers was accessed with a lock temporarily released. In rare cases,
if one thread attempted to access this array but a second thread
reallocated the array before the first thread reacquired a lock, it
could lead to the first thread attempting to access freed memory,
potentially causing libvirt to crash. With this update libvirt no
longer refers to the old array and, consequently, behaves as expected.
(BZ#671569)

* Guests connected to a passthrough NIC would kernel panic if a
system_reset signal was sent through the QEMU monitor. With this
update you can reset such guests as expected. (BZ#689880)

* When using the Xen kernel, the rpmbuild command failed on the
xencapstest test. With this update you can run rpmbuild successfully
when using the Xen kernel. (BZ#690459)

* When a disk was hot unplugged, 'ret >= 0' was passed to the
qemuAuditDisk calls in disk hotunplug operations before ret was, in
fact, set to 0. As well, the error path jumped to the 'cleanup' label
prematurely. As a consequence, hotunplug failures were not audited and
hotunplug successes were audited as failures. This was corrected and
hot unplugging checks now behave as expected. (BZ#710151)

* A conflict existed between filter update locking sequences and
virtual machine startup locking sequences. When a filter update
occurred on one or more virtual machines, a deadlock could
consequently occur if a virtual machine referencing a filter was
started. This update changes and makes more flexible several qemu
locking sequences ensuring this deadlock no longer occurs. (BZ#697749)

* qemudDomainSaveImageStartVM closed some incoming file descriptor
(fd) arguments without informing the caller. The consequent
double-closes could cause Domain restoration failure. This update
alters the qemudDomainSaveImageStartVM signature to prevent the
double-closes. (BZ#681623)

This update also adds the following enhancements :

* The libvirt Xen driver now supports more than one serial port.
(BZ#670789)

* Enabling and disabling the High Precision Event Timer (HPET) in Xen
domains is now possible. (BZ#703193)

All libvirt users should install this update which addresses this
vulnerability, fixes these bugs and adds these enhancements. After
installing the updated packages, libvirtd must be restarted ('service
libvirtd restart') for this update to take effect.

See also :

https://www.redhat.com/security/data/cve/CVE-2011-2511.html
http://rhn.redhat.com/errata/RHSA-2011-1019.html

Solution :

Update the affected libvirt, libvirt-devel and / or libvirt-python
packages.

Risk factor :

Medium / CVSS Base Score : 4.0
(CVSS2#AV:N/AC:L/Au:S/C:N/I:N/A:P)
CVSS Temporal Score : 3.0
(CVSS2#E:U/RL:OF/RC:C)
Public Exploit Available : false

Family: Red Hat Local Security Checks

Nessus Plugin ID: 63993 ()

Bugtraq ID: 48478

CVE ID: CVE-2011-2511