Re: [PATCH 4/7] x86: Add support for rd/wr fs/gs base

From: H. Peter Anvin
Date: Wed Apr 30 2014 - 00:52:45 EST


On 04/29/2014 04:39 PM, Andi Kleen wrote:
>> Case 3 is annoying. If nothing tries to change the user gs base, then
>> everything is okay because the user gs base and the kernel gs bases are
>> equal. But if something does try to change the user gs base, then it
>> will accidentally change the kernel gs base instead.
>
> It doesn't really matter, as they are the same.
> They would just switch identities.
>
> Besides I don't think anyone does that.
>

It matters -- greatly -- if (and only if) we can enter the kernel with
usergs == kernelgs and then want to change usergs inside a paranoid
routine. At that point we risk being upside down, which basically means
we're rooted.

However, I believe this patchset also means only IST entries can be
paranoid, which in turn means we can't sleep inside them. To the very
best of my knowledge the only times we change usergs is on context
switch or inside a system call. We need to make sure that is actually
the case, though.

I'm at ELC for a few days, so I'll have limited decent-sized-monitor
time, but it shouldn't be too hard to convince ourselves of... mostly a
matter of making sure something like ptrace can't to stupid crap.

-hpa


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