libvirt: Directory traversal — GLSA 201612-10

Libvirt is vulnerable to directory traversal when using Access Control Lists (ACL).

Affected Packages

app-emulation/libvirt on all architectures
Affected versions < 1.2.21-r1
Unaffected versions >= 1.2.21-r1

Background

libvirt is a C toolkit for manipulating virtual machines.

Description

Normally, only privileged users can coerce libvirt into creating or opening existing files using the virStorageVol APIs; and such users already have full privilege to create any domain XML.

But in the case of fine-grained ACLs, it is feasible that a user can be granted storage_vol:create but not domain:write, and it violates assumptions if such a user can abuse libvirt to access files outside of the storage pool.

Impact

When fine-grained Access Control Lists (ACL) are in effect, an authenticated local user with storage_vol:create permission but without domain:write permission maybe able to create or access arbitrary files outside of the storage pool.

Workaround

Don’t make use of fine-grained Access Control Lists (ACL) in libvirt; In Gentoo, libvirt’s ACL support is disable by default unless you enable the “policykit” USE flag.

Resolution

All libvirt users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=app-emulation/libvirt-1.2.21-r1"
 

References

Release Date
December 04, 2016

Latest Revision
December 04, 2016: 1

Severity
normal

Exploitable
local

Bugzilla entries