[Pkg-xen-devel] Bug#464969: Bug#464969: xen-hypervisor-3.2-1-i386: Linux mmap()/vmsplice() exploit causes memory map corruption in hypervisor regardless of domain privilege

Samuel Thibault samuel.thibault at eu.citrix.com
Sun Feb 10 13:46:01 UTC 2008


William Pitcock, le Sun 10 Feb 2008 06:56:59 -0600, a écrit :
> On Sun, 2008-02-10 at 13:32 +0100, Bastian Blank wrote:
> > You have to show evidence that the Hypervisor crashed if the exploit
> > runs in a domU. dom0 is special and can always crash the hypervisor. A
> > stacktrace is usable to do this.
> 
> However, running the exploit does indeed cause the hypervisor to crash;

Again, that's no wonder for a dom0, but the question is "what about
domU".

> The exploit works by altering the memory map (via vmsplice()) to get
> access into kernel space.

Yes, and in such case Xen will refuse to make the memory map change and
just crash the guest.

> Since the memory map is altered in the domU, it is no longer in sync
> with the global state.

What do you call "global state"?

> Each domU is aware of the state of the other domU's

?! domUs don't know each other.

> in Xen (at least, this is what the documentation tells me,

What part of the documentation brings you to that?

> ). If one domU gets out of sync, it could cause state corruption in
> the hypervisor.

There's no reason why a domU should be in charge of keeping in sync. In
the security model of Xen, domU is _not_ trusted.

> As a result, Xen should check for this state corruption by maintaining
> a secondary copy of the memory map and ensuring that it has not been
> altered. If it has been altered, it should _probably_ kill the VM
> which did it.

It already traps and checks _all_ updates of the memory maps and kills
the VM if appropriate (but lets dom0 do whatever it wants).

Samuel





More information about the Pkg-xen-devel mailing list