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

From: Rusty Russell
Date: Fri Aug 10 2007 - 08:05:10 EST


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.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/