Re: Using x86 segments against NULL pointer deference exploit

From: Jiri Kosina
Date: Sat Nov 07 2009 - 05:20:17 EST


On Fri, 6 Nov 2009, H. Peter Anvin wrote:

> Yes, it is. On 32 bits it is possible to switch around segments and do
> this (in which case you want it to only cover the actual kernel area,
> and use USER_DS for all user-space references.) This also lets you drop
> nearly all pointer-range checks, since they are now redundant.
> However, there is a cost -- it pretty much requires a segment register
> for USER_DS (this used to be fs once upon a time, hence set_fs) and
> probably would break Xen and possibly other virtualization solutions.

There are ways to work around this though (UDEREF implementation of this
technique in PaX explicitly checks for VMWare signature and handles such
case differently ... I guess the same could be done for other
virtualization solutions).

Not that it would be particularly nice of course ...

--
Jiri Kosina
SUSE Labs, Novell Inc.

--
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/