Skip to navigation

Security Advisory Moderate: libvirt security, bug fix, and enhancement update

Advisory: RHSA-2011:1019-1
Type: Security Advisory
Severity: Moderate
Issued on: 2011-07-21
Last updated on: 2011-07-21
Affected Products: RHEL Desktop Multi OS (v. 5 client)
RHEL Virtualization (v. 5 server)
CVEs (cve.mitre.org): CVE-2011-2511

Details

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.


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
https://access.redhat.com/kb/docs/DOC-11259

Updated packages

RHEL Desktop Multi OS (v. 5 client)

SRPMS:
libvirt-0.8.2-22.el5.src.rpm
File outdated by:  RHBA-2013:0575
    MD5: c0a1b77b438d3c10ca1ecc9a16d5cbe1
SHA-256: 1f2397e3739427f8e49671f8bae37979d97ec487a7eb327eafd9f3064cec93c5
 
IA-32:
libvirt-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: a26e355b7b32a228f9c797d61abaabf8
SHA-256: 3d00b1f675f03b637ecb34a0650374cfd1b0fec846359d9d51ce0dfd8d037e65
libvirt-devel-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: 06826b798f071beb97e169b67b7743de
SHA-256: 780ad83c7f0ef21caeeec0a9b95d839b318a2fcbbd2db9288d2713a69704f009
libvirt-python-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: c004f7fd6341ec0245a8129d8314cd36
SHA-256: 123557258c646c6f0ddba454186b34b9699e6f488118108b751240063861a45f
 
x86_64:
libvirt-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: a26e355b7b32a228f9c797d61abaabf8
SHA-256: 3d00b1f675f03b637ecb34a0650374cfd1b0fec846359d9d51ce0dfd8d037e65
libvirt-0.8.2-22.el5.x86_64.rpm
File outdated by:  RHBA-2013:0575
    MD5: 9b123e374c0a76b315c66bf303282a8e
SHA-256: 33d024f2b84dc254b6ba67da7b9587266c5015590b06e742eba73caa389cfdfa
libvirt-devel-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: 06826b798f071beb97e169b67b7743de
SHA-256: 780ad83c7f0ef21caeeec0a9b95d839b318a2fcbbd2db9288d2713a69704f009
libvirt-devel-0.8.2-22.el5.x86_64.rpm
File outdated by:  RHBA-2013:0575
    MD5: 57c08e8a083677f2b0d3e244e9cfe6e4
SHA-256: 5e271376eab75f5fd85bd4e4f29bc106b5fffda3d37b3c9fe2f15932a60fe9f0
libvirt-python-0.8.2-22.el5.x86_64.rpm
File outdated by:  RHBA-2013:0575
    MD5: 1133fa800f9aa2580978f07e29851997
SHA-256: cdb8ffea1812c71c10e69a5890316874febc4593c0dbed632a92de5229cd6ea0
 
RHEL Virtualization (v. 5 server)

SRPMS:
libvirt-0.8.2-22.el5.src.rpm
File outdated by:  RHBA-2013:0575
    MD5: c0a1b77b438d3c10ca1ecc9a16d5cbe1
SHA-256: 1f2397e3739427f8e49671f8bae37979d97ec487a7eb327eafd9f3064cec93c5
 
IA-32:
libvirt-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: a26e355b7b32a228f9c797d61abaabf8
SHA-256: 3d00b1f675f03b637ecb34a0650374cfd1b0fec846359d9d51ce0dfd8d037e65
libvirt-devel-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: 06826b798f071beb97e169b67b7743de
SHA-256: 780ad83c7f0ef21caeeec0a9b95d839b318a2fcbbd2db9288d2713a69704f009
libvirt-python-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: c004f7fd6341ec0245a8129d8314cd36
SHA-256: 123557258c646c6f0ddba454186b34b9699e6f488118108b751240063861a45f
 
IA-64:
libvirt-0.8.2-22.el5.ia64.rpm
File outdated by:  RHBA-2013:0575
    MD5: e465ce32a6aac186ff534e6576e59640
SHA-256: 8b4a429daf1b9f002879dd356f320ffff1afdfb34c68d1fd1e88ca6aa05362e7
libvirt-devel-0.8.2-22.el5.ia64.rpm
File outdated by:  RHBA-2013:0575
    MD5: ba0a6760f5488e98b77e58131c76cb48
SHA-256: 6a402164c7464afc58e938efa31d1b79fb8638765374f4a1e31adc753ad038e4
libvirt-python-0.8.2-22.el5.ia64.rpm
File outdated by:  RHBA-2013:0575
    MD5: 9c7729c91d46cc9f7d58426f83659f32
SHA-256: c9558a20f873f719bd967179d7c28b2ed53060f20550b7d93684d8aae26f1cb7
 
x86_64:
libvirt-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: a26e355b7b32a228f9c797d61abaabf8
SHA-256: 3d00b1f675f03b637ecb34a0650374cfd1b0fec846359d9d51ce0dfd8d037e65
libvirt-0.8.2-22.el5.x86_64.rpm
File outdated by:  RHBA-2013:0575
    MD5: 9b123e374c0a76b315c66bf303282a8e
SHA-256: 33d024f2b84dc254b6ba67da7b9587266c5015590b06e742eba73caa389cfdfa
libvirt-devel-0.8.2-22.el5.i386.rpm
File outdated by:  RHBA-2013:0575
    MD5: 06826b798f071beb97e169b67b7743de
SHA-256: 780ad83c7f0ef21caeeec0a9b95d839b318a2fcbbd2db9288d2713a69704f009
libvirt-devel-0.8.2-22.el5.x86_64.rpm
File outdated by:  RHBA-2013:0575
    MD5: 57c08e8a083677f2b0d3e244e9cfe6e4
SHA-256: 5e271376eab75f5fd85bd4e4f29bc106b5fffda3d37b3c9fe2f15932a60fe9f0
libvirt-python-0.8.2-22.el5.x86_64.rpm
File outdated by:  RHBA-2013:0575
    MD5: 1133fa800f9aa2580978f07e29851997
SHA-256: cdb8ffea1812c71c10e69a5890316874febc4593c0dbed632a92de5229cd6ea0
 
(The unlinked packages above are only available from the Red Hat Network)

Bugs fixed (see bugzilla for more information)

665075 - minor libvirt API break in error reporting
665549 - libvirt crash on src/util/util.c in __virExec
671569 - race condition in libvirt could lead to crash on event handling
681623 - libvirt double-close bug in tight loop of save/restore [5.7]
689880 - guest with passthrough nic got kernel panic when send system_reset signal in QEMU monitor
690459 - rpmbuild failed on xencapstest when running under xen kernel
697749 - Deadlock between VM ops and filter update
703193 - support enabling/disabling xen hpet
710151 - Auditing of QEMU driver disk hotunplug events logs is missing and/or incorrect
717199 - CVE-2011-2511 libvirt: integer overflow in VirDomainGetVcpus


References



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

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