All of lore.kernel.org
 help / color / mirror / Atom feed
From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
To: "Tobin C. Harding" <me@tobin.cc>
Cc: kernel-hardening@lists.openwall.com,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	Theodore Ts'o <tytso@mit.edu>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Kees Cook <keescook@chromium.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Tycho Andersen <tycho@docker.com>,
	"Roberts, William C" <william.c.roberts@intel.com>,
	Tejun Heo <tj@kernel.org>,
	Jordan Glover <Golden_Miller83@protonmail.ch>,
	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>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <wilal.deacon@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Chris Fries <cfries@google.com>,
	Dave Weinstein <olorin@google.com>,
	Daniel Micay <danielmicay@gmail.com>,
	Djalal Harouni <tixxdz@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: [kernel-hardening] Re: [PATCH V8 0/2] printk: hash addresses printed with %p
Date: Fri, 27 Oct 2017 22:33:01 +0900	[thread overview]
Message-ID: <20171027133301.GA612@tigerII.localdomain> (raw)
In-Reply-To: <1508986436-31966-1-git-send-email-me@tobin.cc>

On (10/26/17 13:53), Tobin C. Harding wrote:
> Currently there are many places in the kernel where addresses are being
> printed using an unadorned %p. Kernel pointers should be printed using
> %pK allowing some control via the kptr_restrict sysctl. Exposing
> addresses gives attackers sensitive information about the kernel layout
> in memory.
> 
> We can reduce the attack surface by hashing all addresses printed with
> %p. This will of course break some users, forcing code printing needed
> addresses to be updated.
> 
> With this version we include hashing of malformed specifiers also.
> Malformed specifiers include incomplete (e.g %pi) and also non-existent
> specifiers. checkpatch should warn for non-existent specifiers but
> AFAICT won't warn for incomplete specifiers.
> 
> Here is the behaviour that this set implements.
> 
> For kpt_restrict==0
> 
> Randomness not ready:
>   printed with %p: 		(pointer)          # NOTE: with padding
> Valid pointer:
>   printed with %pK: 		deadbeefdeadbeef
>   printed with %p: 		0xdeadbeef
>   malformed specifier (eg %i):  0xdeadbeef
> NULL pointer:
>   printed with %pK: 		0000000000000000
>   printed with %p: 		(null)               # NOTE: no padding
>   malformed specifier (eg %i):  (null)

a quick question:
 do we care about cases when kernel pointers are printed with %x/%X and
 not with %p?

	-ss

WARNING: multiple messages have this Message-ID (diff)
From: Sergey Senozhatsky <sergey.senozhatsky@gmail.com>
To: "Tobin C. Harding" <me@tobin.cc>
Cc: kernel-hardening@lists.openwall.com,
	"Jason A. Donenfeld" <Jason@zx2c4.com>,
	"Theodore Ts'o" <tytso@mit.edu>,
	Linus Torvalds <torvalds@linux-foundation.org>,
	Kees Cook <keescook@chromium.org>,
	Paolo Bonzini <pbonzini@redhat.com>,
	Tycho Andersen <tycho@docker.com>,
	"Roberts, William C" <william.c.roberts@intel.com>,
	Tejun Heo <tj@kernel.org>,
	Jordan Glover <Golden_Miller83@protonmail.ch>,
	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>,
	Catalin Marinas <catalin.marinas@arm.com>,
	Will Deacon <wilal.deacon@arm.com>,
	Steven Rostedt <rostedt@goodmis.org>,
	Chris Fries <cfries@google.com>,
	Dave Weinstein <olorin@google.com>,
	Daniel Micay <danielmicay@gmail.com>,
	Djalal Harouni <tixxdz@gmail.com>,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH V8 0/2] printk: hash addresses printed with %p
Date: Fri, 27 Oct 2017 22:33:01 +0900	[thread overview]
Message-ID: <20171027133301.GA612@tigerII.localdomain> (raw)
In-Reply-To: <1508986436-31966-1-git-send-email-me@tobin.cc>

On (10/26/17 13:53), Tobin C. Harding wrote:
> Currently there are many places in the kernel where addresses are being
> printed using an unadorned %p. Kernel pointers should be printed using
> %pK allowing some control via the kptr_restrict sysctl. Exposing
> addresses gives attackers sensitive information about the kernel layout
> in memory.
> 
> We can reduce the attack surface by hashing all addresses printed with
> %p. This will of course break some users, forcing code printing needed
> addresses to be updated.
> 
> With this version we include hashing of malformed specifiers also.
> Malformed specifiers include incomplete (e.g %pi) and also non-existent
> specifiers. checkpatch should warn for non-existent specifiers but
> AFAICT won't warn for incomplete specifiers.
> 
> Here is the behaviour that this set implements.
> 
> For kpt_restrict==0
> 
> Randomness not ready:
>   printed with %p: 		(pointer)          # NOTE: with padding
> Valid pointer:
>   printed with %pK: 		deadbeefdeadbeef
>   printed with %p: 		0xdeadbeef
>   malformed specifier (eg %i):  0xdeadbeef
> NULL pointer:
>   printed with %pK: 		0000000000000000
>   printed with %p: 		(null)               # NOTE: no padding
>   malformed specifier (eg %i):  (null)

a quick question:
 do we care about cases when kernel pointers are printed with %x/%X and
 not with %p?

	-ss

  parent reply	other threads:[~2017-10-27 13:33 UTC|newest]

Thread overview: 57+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-10-26  2:53 [kernel-hardening] [PATCH V8 0/2] printk: hash addresses printed with %p Tobin C. Harding
2017-10-26  2:53 ` Tobin C. Harding
2017-10-26  2:53 ` [kernel-hardening] [PATCH V8 1/2] printk: remove tabular output for NULL pointer Tobin C. Harding
2017-10-26  2:53   ` Tobin C. Harding
2017-10-26  4:57   ` [kernel-hardening] " Joe Perches
2017-10-26  4:57     ` Joe Perches
2017-10-26  6:27     ` [kernel-hardening] " Tobin C. Harding
2017-10-26  6:27       ` Tobin C. Harding
2017-10-26  8:05       ` [kernel-hardening] " Joe Perches
2017-10-26  8:05         ` Joe Perches
2017-10-26  9:37         ` [kernel-hardening] " Tobin C. Harding
2017-10-26  9:37           ` Tobin C. Harding
2017-10-26 14:47           ` [kernel-hardening] " Joe Perches
2017-10-26 14:47             ` Joe Perches
2017-10-26 23:57             ` [kernel-hardening] " Tobin C. Harding
2017-10-26 23:57               ` Tobin C. Harding
2017-10-27  0:11               ` [kernel-hardening] " Joe Perches
2017-10-27  0:11                 ` Joe Perches
2017-10-26  2:53 ` [kernel-hardening] [PATCH V8 2/2] printk: hash addresses printed with %p Tobin C. Harding
2017-10-26  2:53   ` Tobin C. Harding
2017-10-26  2:58   ` [kernel-hardening] " Tobin C. Harding
2017-10-26  2:58     ` Tobin C. Harding
2017-10-30 21:33     ` [kernel-hardening] " Steven Rostedt
2017-10-30 21:33       ` Steven Rostedt
2017-10-30 22:41       ` [kernel-hardening] " Tobin C. Harding
2017-10-30 22:41         ` Tobin C. Harding
2017-10-31  0:00         ` [kernel-hardening] " Steven Rostedt
2017-10-31  0:00           ` Steven Rostedt
2017-10-31  2:00           ` [kernel-hardening] " Tobin C. Harding
2017-10-31  2:00             ` Tobin C. Harding
2017-10-26  3:11   ` [kernel-hardening] " Jason A. Donenfeld
2017-10-26  3:11     ` Jason A. Donenfeld
2017-10-27 13:33 ` Sergey Senozhatsky [this message]
2017-10-27 13:33   ` [PATCH V8 0/2] " Sergey Senozhatsky
2017-10-31 23:35   ` [kernel-hardening] " Tobin C. Harding
2017-10-31 23:35     ` Tobin C. Harding
2017-11-02  8:23     ` [kernel-hardening] " Sergey Senozhatsky
2017-11-02  8:23       ` Sergey Senozhatsky
2017-11-02 10:14       ` [kernel-hardening] " Tobin C. Harding
2017-11-02 10:14         ` Tobin C. Harding
2017-11-02 13:43         ` [kernel-hardening] " Roberts, William C
2017-11-02 13:43           ` Roberts, William C
2017-11-02 16:04         ` [kernel-hardening] " Sergey Senozhatsky
2017-11-02 16:04           ` Sergey Senozhatsky
2017-11-02 18:11           ` [kernel-hardening] " Petr Nejedlý
2017-10-30 22:03 ` Kees Cook
2017-10-30 22:03   ` Kees Cook
2017-10-30 22:33   ` [kernel-hardening] " Tobin C. Harding
2017-10-30 22:33     ` Tobin C. Harding
2017-10-31  2:08     ` [kernel-hardening] " Joe Perches
2017-10-31  2:08       ` Joe Perches
2017-10-31 23:16       ` [kernel-hardening] " Tobin C. Harding
2017-10-31 23:16         ` Tobin C. Harding
2017-10-31 23:33         ` [kernel-hardening] " Joe Perches
2017-10-31 23:33           ` Joe Perches
2017-11-03  5:13           ` [kernel-hardening] " Vinod Koul
2017-11-03  5:13             ` Vinod Koul

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=20171027133301.GA612@tigerII.localdomain \
    --to=sergey.senozhatsky@gmail.com \
    --cc=Golden_Miller83@protonmail.ch \
    --cc=Jason@zx2c4.com \
    --cc=catalin.marinas@arm.com \
    --cc=cfries@google.com \
    --cc=danielmicay@gmail.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=pbonzini@redhat.com \
    --cc=pmladek@suse.com \
    --cc=rostedt@goodmis.org \
    --cc=tixxdz@gmail.com \
    --cc=tj@kernel.org \
    --cc=torvalds@linux-foundation.org \
    --cc=tycho@docker.com \
    --cc=tytso@mit.edu \
    --cc=wilal.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.