Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S965297AbeALVSU (ORCPT + 1 other); Fri, 12 Jan 2018 16:18:20 -0500 Received: from mail-pf0-f170.google.com ([209.85.192.170]:35039 "EHLO mail-pf0-f170.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S965165AbeALVSS (ORCPT ); Fri, 12 Jan 2018 16:18:18 -0500 X-Google-Smtp-Source: ACJfBouhhjTQWKDV50taxsojGKNN/kE3yS5puvcZO7KnSZwg/FC0vHWDGY13t5n5hhBKV6Ee7YPdJw== Content-Type: text/plain; charset=us-ascii Mime-Version: 1.0 (1.0) Subject: Re: [RFC PATCH v2 6/6] x86/entry/pti: don't switch PGD on when pti_disable is set From: Andy Lutomirski X-Mailer: iPhone Mail (15C202) In-Reply-To: <20180112202238.hc2dkjvmu7wlz7xw@gmail.com> Date: Fri, 12 Jan 2018 13:18:06 -0800 Cc: Linus Torvalds , Willy Tarreau , Andy Lutomirski , Dave Hansen , Peter Zijlstra , LKML , X86 ML , Borislav Petkov , Brian Gerst , Thomas Gleixner , Josh Poimboeuf , "H. Peter Anvin" , Greg Kroah-Hartman , Kees Cook Content-Transfer-Encoding: 8BIT Message-Id: References: <20180111064259.GC14920@1wt.eu> <0f08d89e-61e1-20e3-5c59-0b2f7b32bf0c@linux.intel.com> <20180111154412.GA15296@1wt.eu> <20180111174025.GB15344@1wt.eu> <50EB5B67-E441-43A6-8DD7-650A75B6ABE7@amacapital.net> <20180112202238.hc2dkjvmu7wlz7xw@gmail.com> To: Ingo Molnar Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: > On Jan 12, 2018, at 12:22 PM, Ingo Molnar wrote: > > > * Andy Lutomirski wrote: > >>> 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. > > Those all seem pretty valid arguments to me. > > FWIW, if we take this approach, then either dropping the capability should turn PTI back on or we need to deal with the corner case of PTI off and capability not present. The latter is a bit awkward but not necessarily a show stopper. I think that all we need to do is to update the ptrace rules and maybe make PTI turn back on when we execve. At least there's no need to muck around with LSM hooks.