Re: [RFC 00/15] x86_64: Optimize percpu accesses

From: Ingo Molnar
Date: Wed Jul 09 2008 - 16:08:28 EST



* Eric W. Biederman <ebiederm@xxxxxxxxxxxx> wrote:

> I just took a quick look at how stack_protector works on x86_64.
> Unless there is some deep kernel magic that changes the segment
> register to %gs from the ABI specified %fs CC_STACKPROTECTOR is
> totally broken on x86_64. We access our pda through %gs.
>
> Further -fstack-protector-all only seems to detect against buffer
> overflows and thus corruption of the stack. Not stack overflows. So
> it doesn't appear especially useful.

CC_STACKPROTECTOR, as fixed in -tip, can catch the splice exploit, and
there's no known breakage in it.

Deep stack recursion itself is not really interesting. (as that cannot
arbitrarily be triggered by attackers in most cases) Random overflows of
buffers on the stackframe is a lot more common, and that's what
stackprotector protects against.

( Note that deep stack recursion can be caught via another debug
mechanism, ftrace's mcount approach. )

> So we don't we kill the broken CONFIG_CC_STACKPROTECTOR. Stop trying
> to figure out how to use a zero based percpu area.

Note that the zero-based percpu problems are completely unrelated to
stackprotector. I was able to hit them with a stackprotector-disabled
gcc-4.2.3 environment.

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