Re: [PATCH v2] x86/mm/init_32: Stop printing the virtual memory layout

From: Kees Cook
Date: Mon Mar 02 2020 - 13:39:50 EST


On Sat, Feb 29, 2020 at 07:22:09PM -0500, Arvind Sankar wrote:
> For security, don't display the kernel's virtual memory layout.
>
> Signed-off-by: Arvind Sankar <nivedita@xxxxxxxxxxxx>

If this needs a v3, I'd just list the commits I mentioned for further
justification. But regardless:

Acked-by: Kees Cook <keescook@xxxxxxxxxxxx>

-Kees

> ---
> arch/x86/mm/init_32.c | 38 --------------------------------------
> 1 file changed, 38 deletions(-)
>
> diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
> index 23df4885bbed..8ae0272c1c51 100644
> --- a/arch/x86/mm/init_32.c
> +++ b/arch/x86/mm/init_32.c
> @@ -788,44 +788,6 @@ void __init mem_init(void)
> x86_init.hyper.init_after_bootmem();
>
> mem_init_print_info(NULL);
> - printk(KERN_INFO "virtual kernel memory layout:\n"
> - " fixmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
> - " cpu_entry : 0x%08lx - 0x%08lx (%4ld kB)\n"
> -#ifdef CONFIG_HIGHMEM
> - " pkmap : 0x%08lx - 0x%08lx (%4ld kB)\n"
> -#endif
> - " vmalloc : 0x%08lx - 0x%08lx (%4ld MB)\n"
> - " lowmem : 0x%08lx - 0x%08lx (%4ld MB)\n"
> - " .init : 0x%08lx - 0x%08lx (%4ld kB)\n"
> - " .data : 0x%08lx - 0x%08lx (%4ld kB)\n"
> - " .text : 0x%08lx - 0x%08lx (%4ld kB)\n",
> - FIXADDR_START, FIXADDR_TOP,
> - (FIXADDR_TOP - FIXADDR_START) >> 10,
> -
> - CPU_ENTRY_AREA_BASE,
> - CPU_ENTRY_AREA_BASE + CPU_ENTRY_AREA_MAP_SIZE,
> - CPU_ENTRY_AREA_MAP_SIZE >> 10,
> -
> -#ifdef CONFIG_HIGHMEM
> - PKMAP_BASE, PKMAP_BASE+LAST_PKMAP*PAGE_SIZE,
> - (LAST_PKMAP*PAGE_SIZE) >> 10,
> -#endif
> -
> - VMALLOC_START, VMALLOC_END,
> - (VMALLOC_END - VMALLOC_START) >> 20,
> -
> - (unsigned long)__va(0), (unsigned long)high_memory,
> - ((unsigned long)high_memory - (unsigned long)__va(0)) >> 20,
> -
> - (unsigned long)&__init_begin, (unsigned long)&__init_end,
> - ((unsigned long)&__init_end -
> - (unsigned long)&__init_begin) >> 10,
> -
> - (unsigned long)&_etext, (unsigned long)&_edata,
> - ((unsigned long)&_edata - (unsigned long)&_etext) >> 10,
> -
> - (unsigned long)&_text, (unsigned long)&_etext,
> - ((unsigned long)&_etext - (unsigned long)&_text) >> 10);
>
> /*
> * Check boundaries twice: Some fundamental inconsistencies can
> --
> 2.24.1
>

--
Kees Cook