From: Willy Tarreau <w@1wt.eu>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Andy Lutomirski <luto@kernel.org>,
Peter Zijlstra <peterz@infradead.org>,
LKML <linux-kernel@vger.kernel.org>, X86 ML <x86@kernel.org>,
Borislav Petkov <bp@alien8.de>, Brian Gerst <brgerst@gmail.com>,
Dave Hansen <dave.hansen@linux.intel.com>,
Ingo Molnar <mingo@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
Josh Poimboeuf <jpoimboe@redhat.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Kees Cook <keescook@chromium.org>
Subject: Re: [RFC PATCH v2 6/6] x86/entry/pti: don't switch PGD on when pti_disable is set
Date: Thu, 11 Jan 2018 07:42:59 +0100 [thread overview]
Message-ID: <20180111064259.GC14920@1wt.eu> (raw)
In-Reply-To: <CA+55aFwfSKNAYEFWCwCe2vSxejA3X85FnX9t1EdnCRUwC1ou1Q@mail.gmail.com>
On Wed, Jan 10, 2018 at 11:50:46AM -0800, Linus Torvalds wrote:
> And the whole "NOW" vs "NEXT" is complete garbage. The obvious sane
> no-PTI interface is that it
>
> (a) inherits on fork/exec, so that you don't have to worry about how
> something is implemented (think "I want to run this kernel build
> without the PTI overhead", but also "I want to run this system daemon
> without PTI").
>
> (b) actual domain changes clear it (ie suid, whatever).
>
> that make it useful for random uses of "I trust service XYZ".
OK. Do you want to see something *only* based on a wrapper (i.e. works
only after execve) or can we let the application apply the change to
itself ? I would also like to let applications re-enable the protection
for processes they're going to exec and not necessarily trust.
> So I'm NAK'ing this whole series on the grounds that it has several
> completely insane semantics and really need to be clarified, and where
> actual usage needs to be thought about a lot more.
In fact we were trying to limit the risk of propagating the protection
removal too far, and leave it only on the sensitive process which really
requires it. But your example of "running the kernel build without PTI"
makes sense from a user's perspective, and it completely contradicts
our initial assumptions.
After all I don't think the NOW vs NEXT is so fundamentally broken. We
could think about having one option for the current process only (which
is cleared by execve) so that applications can apply it to themselves
only without having to wonder about clearing it, and another one which
is only for wrappers and which passes execve(). For now I considered
that we could stop at the first execve, but if I just remove the
clearing of the NEXT flag, it matches your requirement for the kernel
build. After this it's just a matter of naming and placing them on the
mm rather than thread.
Willy
next prev parent reply other threads:[~2018-01-11 6:43 UTC|newest]
Thread overview: 104+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-09 12:56 [RFC PATCH v2 0/6] Per process PTI activation Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 1/6] x86/mm: add a pti_disable entry in mm_context_t Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 2/6] x86/arch_prctl: add ARCH_GET_NOPTI and ARCH_SET_NOPTI to enable/disable PTI Willy Tarreau
2018-01-09 14:17 ` Borislav Petkov
2018-01-09 14:36 ` Willy Tarreau
2018-01-09 14:51 ` Borislav Petkov
2018-01-09 14:54 ` Willy Tarreau
2018-01-09 21:26 ` Andy Lutomirski
2018-01-09 21:29 ` Borislav Petkov
2018-01-09 21:32 ` Willy Tarreau
2018-01-09 21:46 ` Borislav Petkov
2018-01-09 22:06 ` Willy Tarreau
2018-01-09 22:20 ` Borislav Petkov
2018-01-09 22:29 ` Dave Hansen
2018-01-09 22:40 ` Willy Tarreau
2018-01-10 14:42 ` Borislav Petkov
2018-01-10 15:39 ` Willy Tarreau
2018-01-10 16:09 ` Borislav Petkov
2018-01-10 16:19 ` Willy Tarreau
2018-01-10 17:28 ` Borislav Petkov
2018-01-10 7:31 ` Ingo Molnar
2018-01-10 7:37 ` Willy Tarreau
2018-01-10 7:59 ` Ingo Molnar
2018-01-09 23:53 ` Andy Lutomirski
2018-01-10 4:25 ` Willy Tarreau
2018-01-10 7:25 ` Ingo Molnar
2018-01-10 14:45 ` Borislav Petkov
2018-01-10 15:43 ` Willy Tarreau
2018-01-10 15:45 ` Ingo Molnar
2018-01-09 21:34 ` Kees Cook
2018-01-09 21:41 ` Willy Tarreau
2018-01-09 21:50 ` Kees Cook
2018-01-09 22:03 ` Willy Tarreau
2018-01-10 7:13 ` Ingo Molnar
2018-01-12 15:03 ` David Laight
2018-01-12 15:06 ` Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 3/6] x86/pti: add a per-cpu variable pti_disable Willy Tarreau
2018-01-10 7:19 ` Ingo Molnar
2018-01-10 7:29 ` Willy Tarreau
2018-01-10 8:01 ` Ingo Molnar
2018-01-10 8:50 ` Willy Tarreau
2018-01-10 8:59 ` Ingo Molnar
2018-01-10 9:00 ` Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 4/6] x86/pti: don't mark the user PGD with _PAGE_NX Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 5/6] x86/entry/pti: avoid setting CR3 when it's already correct Willy Tarreau
2018-01-10 7:16 ` Ingo Molnar
2018-01-10 7:18 ` Willy Tarreau
2018-01-10 20:29 ` Dave Hansen
2018-01-11 6:46 ` Willy Tarreau
2018-01-09 12:56 ` [RFC PATCH v2 6/6] x86/entry/pti: don't switch PGD on when pti_disable is set Willy Tarreau
2018-01-10 7:15 ` Ingo Molnar
2018-01-10 7:23 ` Willy Tarreau
2018-01-10 8:22 ` Peter Zijlstra
2018-01-10 9:11 ` Willy Tarreau
2018-01-10 19:21 ` Andy Lutomirski
2018-01-10 19:39 ` Willy Tarreau
2018-01-10 19:44 ` Andy Lutomirski
2018-01-10 19:50 ` Linus Torvalds
2018-01-10 20:04 ` Andy Lutomirski
2018-01-11 6:42 ` Willy Tarreau [this message]
2018-01-11 15:29 ` Dave Hansen
2018-01-11 15:44 ` Willy Tarreau
2018-01-11 15:51 ` Dave Hansen
2018-01-11 17:02 ` Andy Lutomirski
2018-01-11 18:21 ` Alexei Starovoitov
2018-01-11 18:30 ` Dave Hansen
2018-01-11 18:32 ` Josh Poimboeuf
2018-01-11 18:36 ` Linus Torvalds
2018-01-11 18:38 ` Dave Hansen
2018-01-11 18:51 ` Linus Torvalds
2018-01-11 18:57 ` Dave Hansen
2018-01-11 19:05 ` Josh Poimboeuf
2018-01-11 19:07 ` Borislav Petkov
2018-01-11 19:17 ` Dave Hansen
2018-01-11 19:19 ` Olivier Galibert
2018-01-11 19:26 ` Josh Poimboeuf
2018-01-11 19:34 ` Alan Cox
2018-01-11 21:23 ` Willy Tarreau
2018-01-11 21:28 ` Linus Torvalds
2018-01-11 22:06 ` Willy Tarreau
2018-01-12 16:37 ` David Laight
2018-01-11 19:12 ` Linus Torvalds
2018-01-11 19:38 ` Alexei Starovoitov
2018-01-11 19:11 ` Willy Tarreau
2018-01-11 20:00 ` Dave Hansen
2018-01-11 17:09 ` Andy Lutomirski
2018-01-11 17:40 ` Willy Tarreau
2018-01-11 17:53 ` Andy Lutomirski
2018-01-11 18:05 ` Willy Tarreau
2018-01-11 18:15 ` Dave Hansen
2018-01-11 18:31 ` Linus Torvalds
2018-01-11 18:25 ` Linus Torvalds
2018-01-11 18:26 ` Linus Torvalds
2018-01-11 19:33 ` Andy Lutomirski
2018-01-12 20:22 ` Ingo Molnar
2018-01-12 21:18 ` Andy Lutomirski
2018-01-12 21:54 ` Willy Tarreau
2018-01-11 21:59 ` Willy Tarreau
2018-01-12 16:27 ` David Laight
2018-01-12 17:55 ` Linus Torvalds
2018-01-12 19:36 ` Willy Tarreau
2018-01-11 18:35 ` Dave Hansen
2018-01-11 21:49 ` Willy Tarreau
-- strict thread matches above, loose matches on Subject: below --
2018-01-11 23:11 Alexey Dobriyan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180111064259.GC14920@1wt.eu \
--to=w@1wt.eu \
--cc=bp@alien8.de \
--cc=brgerst@gmail.com \
--cc=dave.hansen@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=jpoimboe@redhat.com \
--cc=keescook@chromium.org \
--cc=linux-kernel@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mingo@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox