Re: [RFC PATCH v2 6/6] x86/entry/pti: don't switch PGD on when pti_disable is set
From: Andy Lutomirski
Date: Thu Jan 11 2018 - 14:33:34 EST
> On Jan 11, 2018, at 10:26 AM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>
> On Thu, Jan 11, 2018 at 10:25 AM, Linus Torvalds
> <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
>>
>> The other case may be the CLONE_NEW* operations. I *think* they are
>> noops as far as PTI settings would be, but I think people should think
>> about them.
>
> Oh, and yes, I think the npti flag should also break ptrace(). I do
> agree with Andy that it's a "capability", although I do not think it
> should actually be implemented as one.
For all that Linux capabilities are crap, nopti walks like one and quacks like one. It needs to affect ptrace() permissions, it needs a way to disable it systemwide, it needs LSM integration, etc. Using CAP_DISABLE_PTI gives us all of this without tons of churn, auditing, and a whole new configuration thingy for each LSM. And I avoids permanently polluting ptrace checks, the LSM interface, etc for what is, essentially, a performance hack to work around a blatant error in the design of some CPUs.
Plus, with ambient caps, we already did the nasty part of the with and finished all the relevant bikeshedding.
So I'd rather just hold my nose and add the new capability bit.