From: Linus Torvalds <torvalds@linux-foundation.org>
To: Kees Cook <keescook@chromium.org>
Cc: "Tobin C. Harding" <me@tobin.cc>,
Greg KH <gregkh@linuxfoundation.org>,
Petr Mladek <pmladek@suse.com>, Joe Perches <joe@perches.com>,
Ian Campbell <ijc@hellion.org.uk>,
Sergey Senozhatsky <sergey.senozhatsky@gmail.com>,
"kernel-hardening@lists.openwall.com"
<kernel-hardening@lists.openwall.com>,
LKML <linux-kernel@vger.kernel.org>,
Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Steven Rostedt <rostedt@goodmis.org>,
William Roberts <william.c.roberts@intel.com>,
Chris Fries <cfries@google.com>,
Dave Weinstein <olorin@google.com>
Subject: Re: [kernel-hardening] [RFC V2 4/6] lib: vsprintf: default kptr_restrict to the maximum value
Date: Wed, 4 Oct 2017 10:08:02 -0700 [thread overview]
Message-ID: <CA+55aFxBrFsN0wm1_SyafNZ6GHxCLBvwmRaAzfKD9xnS7K3XGg@mail.gmail.com> (raw)
In-Reply-To: <CAGXu5jJQOduZ5evB=1w5NymUFbDNoeB4Y4u2a7zJ8k8vsAojRQ@mail.gmail.com>
On Wed, Oct 4, 2017 at 9:42 AM, Kees Cook <keescook@chromium.org> wrote:
>
> I'd argue that a default of "1" would be a sensible starting place,
> but that can be a separate patch, IMO.
I agree that '1' is a much saner default for _some_ uses, in that it
still gives root access to /proc file data etc.
However, the sad fact is that kptr_restrict just has bad semantics for
that case too, in that you do want to give root access to /proc files,
but the whole "is the current thread root" is a horrible horrible
test.
Partly it's horrible for the reasons mentioned in the source code (ie
the whole IRQ context thing etc), but that's actually the smallest
reason it's not great: the more fundamental issue is that even for
/proc files, it should use the cred for the file opener, not the
current user.
And for anything *but* /proc files, it's almost always the wrong thing
(ie random printk's aren't generally really associated with any user).
It might almost by mistake do the right thing (ie some kernel printk
that can be triggered by a normal user doing something odd), so it's
not like it always does the wrong thing, but it really is almost
entirely random.
So I seriously dislike kptr_restrict. The whole thing is mis-designed
for very very fundamental reasons.
And no, I also refuse to believe that the fix is "just make it have a
value of 4, and just hide all pointers". Because that will just mean
that people won't be using '%p' at all for debug messages etc, they'll
just use %x or whatever.
So I honestly doubt the value of kptr_restrict. Any *sane* policy
pretty much has to be in the caller, and by thinking about what you
print out. IOW, things like proc_pid_wchan().
Linus
next prev parent reply other threads:[~2017-10-04 17:08 UTC|newest]
Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-01 0:06 [kernel-hardening] [RFC V2 0/6] add more kernel pointer filter options Tobin C. Harding
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 1/6] lib: vsprintf: additional kernel pointer filtering options Tobin C. Harding
2017-10-04 8:55 ` Greg KH
2017-10-04 13:08 ` Steven Rostedt
2017-10-04 13:26 ` Greg KH
2017-10-04 13:29 ` Steven Rostedt
2017-10-04 13:54 ` Greg KH
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 2/6] lib: vsprintf: whitelist stack traces Tobin C. Harding
2017-10-02 10:42 ` Will Deacon
2017-10-02 21:49 ` Tobin C. Harding
2017-10-04 8:56 ` Greg KH
2017-10-04 8:58 ` Will Deacon
2017-10-04 9:02 ` Greg KH
2017-10-04 10:42 ` Tobin C. Harding
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 3/6] lib: vsprintf: physical address kernel pointer filtering options Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 4/6] lib: vsprintf: default kptr_restrict to the maximum value Tobin C. Harding
2017-10-04 8:55 ` Greg KH
2017-10-04 16:42 ` Kees Cook
2017-10-04 16:48 ` Roberts, William C
2017-10-04 17:08 ` Linus Torvalds [this message]
2017-10-04 17:28 ` Linus Torvalds
2017-10-04 19:13 ` Jann Horn
2017-10-04 19:23 ` Linus Torvalds
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 5/6] lib: vsprintf: add "%paP", "%papP", and "%padP" specifiers Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-01 0:06 ` [kernel-hardening] [RFC V2 6/6] drivers: uio: un-restrict sysfs pointers for UIO Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-01 0:11 ` [kernel-hardening] [RFC V2 0/6] add more kernel pointer filter options Tobin C. Harding
2017-10-04 8:57 ` Greg KH
2017-10-04 10:45 ` Tobin C. Harding
2017-10-04 8:58 ` Greg KH
2017-10-04 10:50 ` Tobin C. Harding
2017-10-04 12:42 ` Greg KH
2017-10-04 13:28 ` Steven Rostedt
2017-10-04 13:31 ` Steven Rostedt
2017-10-04 16:17 ` Roberts, William C
2017-10-04 15:41 ` Linus Torvalds
2017-10-04 16:22 ` Boris Lukashev
2017-10-04 16:29 ` Linus Torvalds
2017-10-04 16:54 ` Steven Rostedt
2017-10-04 18:58 ` Jordan Glover
2017-10-04 19:19 ` Linus Torvalds
2017-10-04 21:58 ` Roberts, William C
2017-10-04 23:21 ` Daniel Micay
2017-10-04 23:52 ` Linus Torvalds
2017-10-05 0:09 ` Linus Torvalds
2017-10-05 13:55 ` Bjorn Helgaas
2017-10-05 0:29 ` Daniel Micay
2017-10-05 0:35 ` Kees Cook
2017-10-06 8:33 ` Djalal Harouni
2017-10-05 2:19 ` Tobin C. Harding
2017-10-05 3:10 ` Linus Torvalds
2017-10-05 3:15 ` Kees Cook
2017-10-05 15:12 ` Roberts, William C
2017-10-05 16:19 ` Linus Torvalds
2017-10-05 17:10 ` Dave Weinstein
2017-10-07 23:44 ` Theodore Ts'o
2017-10-08 0:08 ` Linus Torvalds
2017-10-13 16:32 ` Roberts, William C
2017-10-13 18:11 ` Linus Torvalds
2017-10-13 19:34 ` Kees Cook
2017-10-13 20:22 ` Linus Torvalds
2017-10-13 20:47 ` Kees Cook
2017-10-13 21:45 ` Linus Torvalds
2017-10-13 22:48 ` Theodore Ts'o
2017-10-13 16:14 ` Roberts, William C
2017-10-04 16:32 ` Ian Campbell
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=CA+55aFxBrFsN0wm1_SyafNZ6GHxCLBvwmRaAzfKD9xnS7K3XGg@mail.gmail.com \
--to=torvalds@linux-foundation.org \
--cc=catalin.marinas@arm.com \
--cc=cfries@google.com \
--cc=gregkh@linuxfoundation.org \
--cc=ijc@hellion.org.uk \
--cc=joe@perches.com \
--cc=keescook@chromium.org \
--cc=kernel-hardening@lists.openwall.com \
--cc=linux-kernel@vger.kernel.org \
--cc=me@tobin.cc \
--cc=olorin@google.com \
--cc=pmladek@suse.com \
--cc=rostedt@goodmis.org \
--cc=sergey.senozhatsky@gmail.com \
--cc=will.deacon@arm.com \
--cc=william.c.roberts@intel.com \
/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;
as well as URLs for NNTP newsgroup(s).