====================================================================                   Red Hat Security Advisory

Synopsis:          Important: libvirt security and bug fix update
Advisory ID:       RHSA-2013:1272-01
Product:           Red Hat Enterprise Linux
Advisory URL:      https://access.redhat.com/errata/RHSA-2013:1272.html
Issue date:        2013-09-19
CVE Names:         CVE-2013-4296 CVE-2013-4311 
====================================================================
1. Summary:

Updated libvirt packages that fix two security issues and several bugs are
now available for Red Hat Enterprise Linux 6.

The Red Hat Security Response Team has rated this update as having
important security impact. Common Vulnerability Scoring System (CVSS) base
scores, which give detailed severity ratings, are available for each
vulnerability from the CVE links in the References section.

2. Relevant releases/architectures:

Red Hat Enterprise Linux Desktop (v. 6) - i386, x86_64
Red Hat Enterprise Linux Desktop Optional (v. 6) - i386, x86_64
Red Hat Enterprise Linux HPC Node (v. 6) - x86_64
Red Hat Enterprise Linux HPC Node Optional (v. 6) - x86_64
Red Hat Enterprise Linux Server (v. 6) - i386, ppc64, s390x, x86_64
Red Hat Enterprise Linux Server Optional (v. 6) - x86_64
Red Hat Enterprise Linux Workstation (v. 6) - i386, x86_64
Red Hat Enterprise Linux Workstation Optional (v. 6) - x86_64

3. Description:

The libvirt library is a C API for managing and interacting with the
virtualization capabilities of Linux and other operating systems. In
addition, libvirt provides tools for remote management of virtualized
systems.

libvirt invokes the PolicyKit pkcheck utility to handle authorization. A
race condition was found in the way libvirt used this utility, allowing a
local user to bypass intended PolicyKit authorizations or execute arbitrary
commands with root privileges. (CVE-2013-4311)

Note: With this update, libvirt has been rebuilt to communicate with
PolicyKit via a different API that is not vulnerable to the race condition.
The polkit RHSA-2013:1270 advisory must also be installed to fix the
CVE-2013-4311 issue.

An invalid free flaw was found in libvirtd's
remoteDispatchDomainMemoryStats function. An attacker able to establish a
read-only connection to libvirtd could use this flaw to crash libvirtd.
(CVE-2013-4296)

The CVE-2013-4296 issue was discovered by Daniel P. Berrange of Red Hat.

This update also fixes the following bugs:

* Prior to this update, the libvirtd daemon leaked memory in the
virCgroupMoveTask() function. A fix has been provided which prevents
libvirtd from incorrect management of memory allocations. (BZ#984556)

* Previously, the libvirtd daemon was accessing one byte before the array
in the virCgroupGetValueStr() function. This bug has been fixed and
libvirtd now stays within the array bounds. (BZ#984561)

* When migrating, libvirtd leaked the migration URI (Uniform Resource
Identifier) on destination. A patch has been provided to fix this bug and
the migration URI is now freed correctly. (BZ#984578)

* Updating a network interface using virDomainUpdateDeviceFlags API failed
when a boot order was set for that interface. The update failed even if the
boot order was set in the provided device XML. The
virDomainUpdateDeviceFlags API has been fixed to correctly parse the boot
order specification from the provided device XML and updating network
interfaces with boot orders now works as expected. (BZ#1003934)

Users of libvirt are advised to upgrade to these updated packages, which
contain backported patches to correct these issues. After installing the
updated packages, libvirtd will be restarted automatically.

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
https://access.redhat.com/site/articles/11258

5. Bugs fixed (http://bugzilla.redhat.com/):

984556 - libvirtd leaks memory in virCgroupMoveTask
984561 - valgrind shows an off-by-one error in virCgroupGetValueStr
984578 - libvirtd leaks URI on destination when migrating
1003934 - vmUpdateDevice fails when nic has boot order set
1005332 - CVE-2013-4311 libvirt: insecure calling of polkit
1006173 - CVE-2013-4296 libvirt: invalid free in remoteDispatchDomainMemoryStats

6. Package List:

Red Hat Enterprise Linux Desktop (v. 6):

Source:

i386:
libvirt-0.10.2-18.el6_4.14.i686.rpm
libvirt-client-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-python-0.10.2-18.el6_4.14.i686.rpm

x86_64:
libvirt-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-client-0.10.2-18.el6_4.14.i686.rpm
libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm

Red Hat Enterprise Linux Desktop Optional (v. 6):

Source:

i386:
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-devel-0.10.2-18.el6_4.14.i686.rpm

x86_64:
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-devel-0.10.2-18.el6_4.14.i686.rpm
libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-lock-sanlock-0.10.2-18.el6_4.14.x86_64.rpm

Red Hat Enterprise Linux HPC Node (v. 6):

Source:

x86_64:
libvirt-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-client-0.10.2-18.el6_4.14.i686.rpm
libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm

Red Hat Enterprise Linux HPC Node Optional (v. 6):

Source:

x86_64:
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-devel-0.10.2-18.el6_4.14.i686.rpm
libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-lock-sanlock-0.10.2-18.el6_4.14.x86_64.rpm

Red Hat Enterprise Linux Server (v. 6):

Source:

i386:
libvirt-0.10.2-18.el6_4.14.i686.rpm
libvirt-client-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-devel-0.10.2-18.el6_4.14.i686.rpm
libvirt-python-0.10.2-18.el6_4.14.i686.rpm

ppc64:
libvirt-0.10.2-18.el6_4.14.ppc64.rpm
libvirt-client-0.10.2-18.el6_4.14.ppc.rpm
libvirt-client-0.10.2-18.el6_4.14.ppc64.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.ppc.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.ppc64.rpm
libvirt-devel-0.10.2-18.el6_4.14.ppc.rpm
libvirt-devel-0.10.2-18.el6_4.14.ppc64.rpm
libvirt-python-0.10.2-18.el6_4.14.ppc64.rpm

s390x:
libvirt-0.10.2-18.el6_4.14.s390x.rpm
libvirt-client-0.10.2-18.el6_4.14.s390.rpm
libvirt-client-0.10.2-18.el6_4.14.s390x.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.s390.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.s390x.rpm
libvirt-devel-0.10.2-18.el6_4.14.s390.rpm
libvirt-devel-0.10.2-18.el6_4.14.s390x.rpm
libvirt-python-0.10.2-18.el6_4.14.s390x.rpm

x86_64:
libvirt-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-client-0.10.2-18.el6_4.14.i686.rpm
libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-devel-0.10.2-18.el6_4.14.i686.rpm
libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm

Red Hat Enterprise Linux Server Optional (v. 6):

Source:

x86_64:
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-lock-sanlock-0.10.2-18.el6_4.14.x86_64.rpm

Red Hat Enterprise Linux Workstation (v. 6):

Source:

i386:
libvirt-0.10.2-18.el6_4.14.i686.rpm
libvirt-client-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-devel-0.10.2-18.el6_4.14.i686.rpm
libvirt-python-0.10.2-18.el6_4.14.i686.rpm

x86_64:
libvirt-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-client-0.10.2-18.el6_4.14.i686.rpm
libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-devel-0.10.2-18.el6_4.14.i686.rpm
libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm

Red Hat Enterprise Linux Workstation Optional (v. 6):

Source:

x86_64:
libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm
libvirt-lock-sanlock-0.10.2-18.el6_4.14.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://access.redhat.com/security/team/key/#package

7. References:

https://www.redhat.com/security/data/cve/CVE-2013-4296.html
https://www.redhat.com/security/data/cve/CVE-2013-4311.html
https://access.redhat.com/security/updates/classification/#important
https://access.redhat.com/errata/RHSA-2013:1270.html

8. Contact:

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

Copyright 2013 Red Hat, Inc.

Red Hat: 2013:1272-01: libvirt: Important Advisory

Updated libvirt packages that fix two security issues and several bugs are now available for Red Hat Enterprise Linux 6

Summary

The libvirt library is a C API for managing and interacting with the virtualization capabilities of Linux and other operating systems. In addition, libvirt provides tools for remote management of virtualized systems.
libvirt invokes the PolicyKit pkcheck utility to handle authorization. A race condition was found in the way libvirt used this utility, allowing a local user to bypass intended PolicyKit authorizations or execute arbitrary commands with root privileges. (CVE-2013-4311)
Note: With this update, libvirt has been rebuilt to communicate with PolicyKit via a different API that is not vulnerable to the race condition. The polkit RHSA-2013:1270 advisory must also be installed to fix the CVE-2013-4311 issue.
An invalid free flaw was found in libvirtd's remoteDispatchDomainMemoryStats function. An attacker able to establish a read-only connection to libvirtd could use this flaw to crash libvirtd. (CVE-2013-4296)
The CVE-2013-4296 issue was discovered by Daniel P. Berrange of Red Hat.
This update also fixes the following bugs:
* Prior to this update, the libvirtd daemon leaked memory in the virCgroupMoveTask() function. A fix has been provided which prevents libvirtd from incorrect management of memory allocations. (BZ#984556)
* Previously, the libvirtd daemon was accessing one byte before the array in the virCgroupGetValueStr() function. This bug has been fixed and libvirtd now stays within the array bounds. (BZ#984561)
* When migrating, libvirtd leaked the migration URI (Uniform Resource Identifier) on destination. A patch has been provided to fix this bug and the migration URI is now freed correctly. (BZ#984578)
* Updating a network interface using virDomainUpdateDeviceFlags API failed when a boot order was set for that interface. The update failed even if the boot order was set in the provided device XML. The virDomainUpdateDeviceFlags API has been fixed to correctly parse the boot order specification from the provided device XML and updating network interfaces with boot orders now works as expected. (BZ#1003934)
Users of libvirt are advised to upgrade to these updated packages, which contain backported patches to correct these issues. After installing the updated packages, libvirtd will be restarted automatically.



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 https://access.redhat.com/site/articles/11258

References

https://www.redhat.com/security/data/cve/CVE-2013-4296.html https://www.redhat.com/security/data/cve/CVE-2013-4311.html https://access.redhat.com/security/updates/classification/#important https://access.redhat.com/errata/RHSA-2013:1270.html

Package List

Red Hat Enterprise Linux Desktop (v. 6):
Source:
i386: libvirt-0.10.2-18.el6_4.14.i686.rpm libvirt-client-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-python-0.10.2-18.el6_4.14.i686.rpm
x86_64: libvirt-0.10.2-18.el6_4.14.x86_64.rpm libvirt-client-0.10.2-18.el6_4.14.i686.rpm libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm
Red Hat Enterprise Linux Desktop Optional (v. 6):
Source:
i386: libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-devel-0.10.2-18.el6_4.14.i686.rpm
x86_64: libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-devel-0.10.2-18.el6_4.14.i686.rpm libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm libvirt-lock-sanlock-0.10.2-18.el6_4.14.x86_64.rpm
Red Hat Enterprise Linux HPC Node (v. 6):
Source:
x86_64: libvirt-0.10.2-18.el6_4.14.x86_64.rpm libvirt-client-0.10.2-18.el6_4.14.i686.rpm libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm
Red Hat Enterprise Linux HPC Node Optional (v. 6):
Source:
x86_64: libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-devel-0.10.2-18.el6_4.14.i686.rpm libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm libvirt-lock-sanlock-0.10.2-18.el6_4.14.x86_64.rpm
Red Hat Enterprise Linux Server (v. 6):
Source:
i386: libvirt-0.10.2-18.el6_4.14.i686.rpm libvirt-client-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-devel-0.10.2-18.el6_4.14.i686.rpm libvirt-python-0.10.2-18.el6_4.14.i686.rpm
ppc64: libvirt-0.10.2-18.el6_4.14.ppc64.rpm libvirt-client-0.10.2-18.el6_4.14.ppc.rpm libvirt-client-0.10.2-18.el6_4.14.ppc64.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.ppc.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.ppc64.rpm libvirt-devel-0.10.2-18.el6_4.14.ppc.rpm libvirt-devel-0.10.2-18.el6_4.14.ppc64.rpm libvirt-python-0.10.2-18.el6_4.14.ppc64.rpm
s390x: libvirt-0.10.2-18.el6_4.14.s390x.rpm libvirt-client-0.10.2-18.el6_4.14.s390.rpm libvirt-client-0.10.2-18.el6_4.14.s390x.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.s390.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.s390x.rpm libvirt-devel-0.10.2-18.el6_4.14.s390.rpm libvirt-devel-0.10.2-18.el6_4.14.s390x.rpm libvirt-python-0.10.2-18.el6_4.14.s390x.rpm
x86_64: libvirt-0.10.2-18.el6_4.14.x86_64.rpm libvirt-client-0.10.2-18.el6_4.14.i686.rpm libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-devel-0.10.2-18.el6_4.14.i686.rpm libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm
Red Hat Enterprise Linux Server Optional (v. 6):
Source:
x86_64: libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-lock-sanlock-0.10.2-18.el6_4.14.x86_64.rpm
Red Hat Enterprise Linux Workstation (v. 6):
Source:
i386: libvirt-0.10.2-18.el6_4.14.i686.rpm libvirt-client-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-devel-0.10.2-18.el6_4.14.i686.rpm libvirt-python-0.10.2-18.el6_4.14.i686.rpm
x86_64: libvirt-0.10.2-18.el6_4.14.x86_64.rpm libvirt-client-0.10.2-18.el6_4.14.i686.rpm libvirt-client-0.10.2-18.el6_4.14.x86_64.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.i686.rpm libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-devel-0.10.2-18.el6_4.14.i686.rpm libvirt-devel-0.10.2-18.el6_4.14.x86_64.rpm libvirt-python-0.10.2-18.el6_4.14.x86_64.rpm
Red Hat Enterprise Linux Workstation Optional (v. 6):
Source:
x86_64: libvirt-debuginfo-0.10.2-18.el6_4.14.x86_64.rpm libvirt-lock-sanlock-0.10.2-18.el6_4.14.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://access.redhat.com/security/team/key/#package


Severity
Advisory ID: RHSA-2013:1272-01
Product: Red Hat Enterprise Linux
Advisory URL: https://access.redhat.com/errata/RHSA-2013:1272.html
Issued Date: : 2013-09-19
CVE Names: CVE-2013-4296 CVE-2013-4311

Topic

Updated libvirt packages that fix two security issues and several bugs arenow available for Red Hat Enterprise Linux 6.The Red Hat Security Response Team has rated this update as havingimportant security impact. Common Vulnerability Scoring System (CVSS) basescores, which give detailed severity ratings, are available for eachvulnerability from the CVE links in the References section.


Topic


 

Relevant Releases Architectures

Red Hat Enterprise Linux Desktop (v. 6) - i386, x86_64

Red Hat Enterprise Linux Desktop Optional (v. 6) - i386, x86_64

Red Hat Enterprise Linux HPC Node (v. 6) - x86_64

Red Hat Enterprise Linux HPC Node Optional (v. 6) - x86_64

Red Hat Enterprise Linux Server (v. 6) - i386, ppc64, s390x, x86_64

Red Hat Enterprise Linux Server Optional (v. 6) - x86_64

Red Hat Enterprise Linux Workstation (v. 6) - i386, x86_64

Red Hat Enterprise Linux Workstation Optional (v. 6) - x86_64


Bugs Fixed

984556 - libvirtd leaks memory in virCgroupMoveTask

984561 - valgrind shows an off-by-one error in virCgroupGetValueStr

984578 - libvirtd leaks URI on destination when migrating

1003934 - vmUpdateDevice fails when nic has boot order set

1005332 - CVE-2013-4311 libvirt: insecure calling of polkit

1006173 - CVE-2013-4296 libvirt: invalid free in remoteDispatchDomainMemoryStats


Related News