Thread (31 messages) 31 messages, 6 authors, 2016-07-15

[PATCH v2 11/11] mm: SLUB hardened usercopy support

From: Kees Cook <hidden>
Date: 2016-07-15 04:29:31
Also in: linux-arch, linux-mm, linuxppc-dev, lkml, sparclinux

On Thu, Jul 14, 2016 at 7:05 PM, Balbir Singh [off-list ref] wrote:
On Wed, Jul 13, 2016 at 02:56:04PM -0700, Kees Cook wrote:
quoted
Under CONFIG_HARDENED_USERCOPY, this adds object size checking to the
SLUB allocator to catch any copies that may span objects. Includes a
redzone handling fix from Michael Ellerman.

Based on code from PaX and grsecurity.

Signed-off-by: Kees Cook <redacted>
---
 init/Kconfig |  1 +
 mm/slub.c    | 36 ++++++++++++++++++++++++++++++++++++
 2 files changed, 37 insertions(+)
diff --git a/init/Kconfig b/init/Kconfig
index 798c2020ee7c..1c4711819dfd 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -1765,6 +1765,7 @@ config SLAB

 config SLUB
      bool "SLUB (Unqueued Allocator)"
+     select HAVE_HARDENED_USERCOPY_ALLOCATOR
Should this patch come in earlier from a build perspective? I think
patch 1 introduces and uses __check_heap_object.
__check_heap_object in patch 1 is protected by a check for
CONFIG_HAVE_HARDENED_USERCOPY_ALLOCATOR.

It seemed better to be to do arch enablement first, and then add the
per-allocator heap object size check since it was a distinct piece.
I'm happy to rearrange things, though, if there's a good reason.

-Kees

-- 
Kees Cook
Chrome OS & Brillo Security
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help