libvirt vulnerabilities

Related Vulnerabilities: CVE-2010-2237   CVE-2010-2238   CVE-2010-2239   CVE-2010-2242  

Guest VMs could be made to circumvent security protections to access resources on the host.

It was discovered that libvirt would probe disk backing stores without consulting the defined format for the disk. A privileged attacker in the guest could exploit this to read arbitrary files on the host. This issue only affected Ubuntu 10.04 LTS. By default, guests are confined by an AppArmor profile which provided partial protection against this flaw. (CVE-2010-2237, CVE-2010-2238)

21 October 2010

libvirt vulnerabilities

A security issue affects these releases of Ubuntu and its derivatives:

  • Ubuntu 10.04 LTS
  • Ubuntu 9.10
  • Ubuntu 9.04
  • Ubuntu 8.04 LTS

Summary

Guest VMs could be made to circumvent security protections to access resources on the host.

Software Description

  • libvirt - library for interfacing with different virtualization systems

Details

It was discovered that libvirt would probe disk backing stores without consulting the defined format for the disk. A privileged attacker in the guest could exploit this to read arbitrary files on the host. This issue only affected Ubuntu 10.04 LTS. By default, guests are confined by an AppArmor profile which provided partial protection against this flaw. (CVE-2010-2237, CVE-2010-2238)

It was discovered that libvirt would create new VMs without setting a backing store format. A privileged attacker in the guest could exploit this to read arbitrary files on the host. This issue did not affect Ubuntu 8.04 LTS. In Ubuntu 9.10 and later guests are confined by an AppArmor profile which provided partial protection against this flaw. (CVE-2010-2239)

Jeremy Nickurak discovered that libvirt created iptables rules with too lenient mappings of source ports. A privileged attacker in the guest could bypass intended restrictions to access privileged resources on the host. (CVE-2010-2242)

Update instructions

The problem can be corrected by updating your system to the following package versions:

Ubuntu 10.04 LTS
libvirt-bin - 0.7.5-5ubuntu27.5
libvirt0 - 0.7.5-5ubuntu27.5
Ubuntu 9.10
libvirt-bin - 0.7.0-1ubuntu13.2
libvirt0 - 0.7.0-1ubuntu13.2
Ubuntu 9.04
libvirt-bin - 0.6.1-0ubuntu5.2
libvirt0 - 0.6.1-0ubuntu5.2
Ubuntu 8.04 LTS
libvirt-bin - 0.4.0-2ubuntu8.3
libvirt0 - 0.4.0-2ubuntu8.3

To update your system, please follow these instructions: https://wiki.ubuntu.com/Security/Upgrades.

After a standard system update you need to reboot your computer to make all the necessary changes.

ATTENTION: The previous version of libvirt on Ubuntu 10.04 LTS would probe a qemu disk to determine its format and did not require that the format be declared in the XML. This is considered a security problem in most deployments and this version of libvirt will default to the ‘raw’ format when the format is not specified in the XML. As a result, non-raw disks without a specified disk format will no longer be available in existing virtual machines.

The libvirt-migrate-qemu-disks tool is provided to aid in transitioning virtual machine definitions to the new required format. In essence, it will check all domains for affected virtual machines, probe the affected disks and update the domain definition accordingly. This command will be run automatically on upgrade. For new virtual machines using non-raw images, the disk format must be specified in the domain XML provided to libvirt, otherwise the disk will not be available to the virtual machine. See man 1 libvirt-migrate-qemu-disks for details.

Users who require the old behavior can adjust the ‘allow_disk_format_probing’ option in /etc/libvirt/qemu.conf.

References