From: Rik van Riel <riel@redhat.com>
To: Kees Cook <keescook@chromium.org>,
Linus Torvalds <torvalds@linux-foundation.org>
Cc: Laura Abbott <labbott@fedoraproject.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
xiaolong.ye@intel.com
Subject: Re: [PATCH] usercopy: Skip multi-page bounds checking on SLOB
Date: Thu, 18 Aug 2016 10:21:58 -0400 [thread overview]
Message-ID: <1471530118.2581.13.camel@redhat.com> (raw)
In-Reply-To: <20160817222921.GA25148@www.outflux.net>
On Wed, 2016-08-17 at 15:29 -0700, Kees Cook wrote:
> When an allocator does not mark all allocations as PageSlab, or does
> not
> mark multipage allocations with __GFP_COMP, hardened usercopy cannot
> correctly validate the allocation. SLOB lacks this, so short-circuit
> the checking for the allocators that aren't marked with
> CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR. This also updates the config
> help and corrects a typo in the usercopy comments.
>
> Reported-by: xiaolong.ye@intel.com
> Signed-off-by: Kees Cook <keescook@chromium.org>
There may still be some subsystems that do not
go through kmalloc for multi-page allocations,
and also do not use __GFP_COMP
I do not know whether there are, but if they exist
those would still trip up the same way SLOB got
tripped up before your patch.
One big question I have for Linus is, do we want
to allow code that does a higher order allocation,
and then frees part of it in smaller orders, or
individual pages, and keeps using the remainder?
>From both a hardening and a simple stability
point of view, allowing memory to be allocated
in one size, and freed in another, seems like
it could be asking for bugs.
If we decide we do not want to allow that,
we can just do the __GFP_COMP markings
unconditionally, and show a big fat warning
when memory gets freed in a different size
than it was allocated.
Is that something we want to do?
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2016-08-18 14:22 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-17 22:29 [PATCH] usercopy: Skip multi-page bounds checking on SLOB Kees Cook
2016-08-18 14:21 ` Rik van Riel [this message]
2016-08-18 17:42 ` Linus Torvalds
2016-08-18 18:02 ` Rik van Riel
2016-08-19 18:00 ` Kees Cook
2016-08-19 10:31 ` Michal Hocko
2016-08-19 19:41 ` Linus Torvalds
2016-08-19 20:03 ` Kees Cook
2016-08-19 20:07 ` Linus Torvalds
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=1471530118.2581.13.camel@redhat.com \
--to=riel@redhat.com \
--cc=keescook@chromium.org \
--cc=labbott@fedoraproject.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=torvalds@linux-foundation.org \
--cc=xiaolong.ye@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).