2016-11-21 16:00:09 |
Tristan Cacqueray |
description |
This issue is being treated as a potential security risk under embargo. Please do not make any public mention of embargoed (private) security vulnerabilities before their coordinated publication by the OpenStack Vulnerability Management Team in the form of an official OpenStack Security Advisory. This includes discussion of the bug or associated fixes in public forums such as mailing lists, code review systems and bug trackers. Please also avoid private disclosure to other individuals not already approved for access to this information, and provide this same reminder to those who are made aware of the issue prior to publication. All discussion should remain confined to this private bug report, and any proposed fixes should be added to the bug as attachments.
--
Reported by Garth Mollett from Red Hat.
The nova.virt.disk.vfs.VFSLocalFS has measures to prevent symlink traversal outside of the root of the images directory but it does not prevent access to device nodes inside the image itself. A simple fix should be to mount with the 'nodev' option.
Under certain circumstances, the boot process will fold back to VFSLocalFS when trying to inject the public key, for libvirt:
* when libguestfs is not installed or can't be loaded.
* use_cow_images=false and inject_partition for non-nbd
* for loopback mount at least, there is a race condition to win in virt/disk/mount/api.py between kpartx and a /dev/mapper/ file creation: os.path.exists can run before the path exists even though it's there half a second later.
The xenapi is also likely vulnerable, though untested. |
Reported by Garth Mollett from Red Hat.
The nova.virt.disk.vfs.VFSLocalFS has measures to prevent symlink traversal outside of the root of the images directory but it does not prevent access to device nodes inside the image itself. A simple fix should be to mount with the 'nodev' option.
Under certain circumstances, the boot process will fold back to VFSLocalFS when trying to inject the public key, for libvirt:
* when libguestfs is not installed or can't be loaded.
* use_cow_images=false and inject_partition for non-nbd
* for loopback mount at least, there is a race condition to win in virt/disk/mount/api.py between kpartx and a /dev/mapper/ file creation: os.path.exists can run before the path exists even though it's there half a second later.
The xenapi is also likely vulnerable, though untested. |
|