Messages in this thread | | | Date | Tue, 29 Apr 2014 21:52:16 -0700 | From | "H. Peter Anvin" <> | Subject | Re: [PATCH 4/7] x86: Add support for rd/wr fs/gs base |
| |
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
| |