usercopy: WARN() on slab cache usercopy region violations
authorKees Cook <keescook@chromium.org>
Wed, 10 Jan 2018 23:17:01 +0000 (15:17 -0800)
committerKees Cook <keescook@chromium.org>
Mon, 15 Jan 2018 20:07:48 +0000 (12:07 -0800)
commitafcc90f8621e289cd082ba97900e76f01afe778c
tree9a015154d31ad79d892f8eb14858e679d37a0e28
parent8eb8284b412906181357c2b0110d879d5af95e52
usercopy: WARN() on slab cache usercopy region violations

This patch adds checking of usercopy cache whitelisting, and is modified
from Brad Spengler/PaX Team's PAX_USERCOPY whitelisting code in the
last public patch of grsecurity/PaX based on my understanding of the
code. Changes or omissions from the original code are mine and don't
reflect the original grsecurity/PaX code.

The SLAB and SLUB allocators are modified to WARN() on all copy operations
in which the kernel heap memory being modified falls outside of the cache's
defined usercopy region.

Based on an earlier patch from David Windsor.

Cc: Christoph Lameter <cl@linux.com>
Cc: Pekka Enberg <penberg@kernel.org>
Cc: David Rientjes <rientjes@google.com>
Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Laura Abbott <labbott@redhat.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: linux-mm@kvack.org
Cc: linux-xfs@vger.kernel.org
Signed-off-by: Kees Cook <keescook@chromium.org>
include/linux/uaccess.h
mm/slab.c
mm/slub.c
mm/usercopy.c