[Lguest] [PATCH] lguest: Fix Malicious Guest GDT Host Crash

Rusty Russell rusty at rustcorp.com.au
Fri Aug 10 22:04:00 EST 2007


On Thu, 2007-08-09 at 08:45 -0700, Zachary Amsden wrote:
> Rusty Russell wrote:
> > We kill the Guest if it causes a fault in the Switcher: it's the
> > Guest's responsibility to make sure it's not using segments when it
> > changes them.
> 
> Linux doesn't obey that rule.  It changes descriptors behind FS/GS all 
> over the place.  Well, not all over the place, only when updating LDT 
> entries

Hi Zach,

	I think it's OK.  To clarify, it's only fatal when the guest changes
them in a way that will fault if they're reloaded: not any change.
Lguest doesn't support LDT, so that's not a problem.

> , TLS entries, and during context switch.

These two go through load_TLS -> lguest_load_tls which is patched by
this same change to load 0 into gs before doing the hypercall.  The
other segment registers are set by the kernel, and so we know they don't
refer to changing entries.

Is there anything I've missed?
Rusty.




More information about the Lguest mailing list