Xen Security Issue Patched
An anonymous reader sends in word of a privilege escalation security issue identified in the open source Xen hypervisor. Xen has issued a hotfix and urged all users to install it. The problem was disclosed by Secunia last week. A user of a guest domain with root privileges could execute arbitrary commands in domain 0 via specially crafted entries in grub.conf when the guest system is booted.
Why are vulnerabilities Slashdot-worthy? They happen almost daily, and are usually fixed quickly. This has was fixed in RHEL yesterday:
https://rhn.redhat.com/errata/RHSA-2007-0323.html
CentOS already carries this fix too.
Xen and the art of powercycle maintenance.
I believe Xen's VM model isn't to try to completely emulate a CPU as other VM products do (QEMU, VMWare, etc.), but instead only abstract it somewhat. I don't think it gives you complete ability to mess with physical memory and arrange it however you please. As such, it gives you a "hypervisor API" for requesting physical memory and controlling its virtual memory mappings.
In an environment where you can't directly mess with physical memory, you can't really have a bootloader, since a bootloader pulls data from the disk (the kernel, initrd, etc.), using either some BIOS calls or direct hardware access (which will be limited to whatever the bootloader knows how to deal with), places that data in memory, and jumps into it. This sounds like a possible disadvantage, but it has the possible benefit of not requiring anyone to mess with setting up real-/protected-mode, dealing with funky BIOS issues (which may differ among different PC models), and having to use BIOS calls to set up the environment before the real kernel boot.
In the Xen-VM world, hardware access is abstracted, and the kernel and other necessary code is already loaded for the guest VM, by the host OS.
Someone correct me if I'm wrong about this (especially the first part about physical memory access)... I can't find the documentation at the moment.
Cool to see this on Slashdot. The guy who found the vulnerability is actually a customer of mine. I recently started a business in hosted Virtual Private Servers. Joris van Rantwijk, the bug reporter, was interested to become a customer and I said why don't you try it out for a few weeks?
/root directory ON MY PHYSICAL MACHINE (i.e. domain 0 in Xen speak) where I find a file describing the exploit...
As a plus point, I let them boot their own kernels (I trust my custommers). Next thing I know, he tells me to check my
Oh don't bother to check out my business' website, it's not translated yet in English... (I'm Dutch).
8 of 13 people found this answer helpful. Did you?
8 of 13 people found this answer helpful. Did you?
A paravirtualised domU does not need a boot loader and does not even have access to its own kernel. Which is nice because you can give it an unmodular kernel which is more secure in as much as a user on that domU cannot load their own (potentially exploiting) kernel modules.
/boot/grub/grub.conf in the domU filesystem?? Makes no sense at all.
Its only an HVM domU that would need a boot loader and its own kernel.
I've read through TFA and the Xen mailing list and I can't see anything that says whether this affects both paravirtualised *and* HVM or just one or the other...?
In the case of paravirtualised, why on earth would the creating the domU even *look* for a
In the free world the media isn't government run; the government is media run.
PyGrub expects that the root device is partitioned and searches on partition 1 for the GRUB configuration. This is bad because it requires you to have a partition table which makes things inconvenient if you want to resize the disk space provided to the virtual machine.
/dev/vbda or /dev/hda etc) and I can easily resize any filesystem at any time by stopping the DomU, extending the LVM volume, and extending the filesystem.
I run my Xen DomU's with a single virtual disk per filesystem, no partition tables (the DomU mounts
This doesn't work with PyGrub, I could fix the bug but I haven't bothered - it's easier to just have the kernel and initrd stored outside the filesystem managed by the DomU.
This configuration makes it easier to manage (one kernel and initrd for multiple DomU's) and avoids security issues with PyGrub.
See http://etbe.coker.com.au/ for my blog.