[PATCH 1/3] mm: security: introduce the init_allocations=1 boot option
Randy Dunlap
rdunlap at infradead.org
Thu Apr 18 22:08:37 UTC 2019
On 4/18/19 8:42 AM, Alexander Potapenko wrote:
> This option adds the possibility to initialize newly allocated pages and
> heap objects with zeroes. This is needed to prevent possible information
> leaks and make the control-flow bugs that depend on uninitialized values
> more deterministic.
>
> Initialization is done at allocation time at the places where checks for
> __GFP_ZERO are performed. We don't initialize slab caches with
> constructors to preserve their semantics. To reduce runtime costs of
> checking cachep->ctor we replace a call to memset with a call to
> cachep->poison_fn, which is only executed if the memory block needs to
> be initialized.
>
> For kernel testing purposes filling allocations with a nonzero pattern
> would be more suitable, but may require platform-specific code. To have
> a simple baseline we've decided to start with zero-initialization.
>
> No performance optimizations are done at the moment to reduce double
> initialization of memory regions.
>
> Signed-off-by: Alexander Potapenko <glider at google.com>
> Cc: Andrew Morton <akpm at linux-foundation.org>
> Cc: James Morris <jmorris at namei.org>
> Cc: "Serge E. Hallyn" <serge at hallyn.com>
> Cc: Nick Desaulniers <ndesaulniers at google.com>
> Cc: Kostya Serebryany <kcc at google.com>
> Cc: Dmitry Vyukov <dvyukov at google.com>
> Cc: Kees Cook <keescook at chromium.org>
> Cc: Sandeep Patil <sspatil at android.com>
> Cc: Laura Abbott <labbott at redhat.com>
> Cc: Randy Dunlap <rdunlap at infradead.org>
> Cc: Jann Horn <jannh at google.com>
> Cc: Mark Rutland <mark.rutland at arm.com>
> Cc: Qian Cai <cai at lca.pw>
> Cc: Vlastimil Babka <vbabka at suse.cz>
> Cc: linux-mm at kvack.org
> Cc: linux-security-module at vger.kernel.org
> Cc: kernel-hardening at lists.openwall.com
> ---
> drivers/infiniband/core/uverbs_ioctl.c | 2 +-
> include/linux/mm.h | 8 ++++++++
> include/linux/slab_def.h | 1 +
> include/linux/slub_def.h | 1 +
> kernel/kexec_core.c | 2 +-
> mm/dmapool.c | 2 +-
> mm/page_alloc.c | 18 +++++++++++++++++-
> mm/slab.c | 12 ++++++------
> mm/slab.h | 1 +
> mm/slab_common.c | 15 +++++++++++++++
> mm/slob.c | 2 +-
> mm/slub.c | 8 ++++----
> net/core/sock.c | 2 +-
> 13 files changed, 58 insertions(+), 16 deletions(-)
>
Hi,
Please document init_allocations=N in Documentation/admin-guide/kernel-parameters.txt.
thanks.
--
~Randy
More information about the Linux-security-module-archive
mailing list