| Date | Tue, 28 Jul 2020 11:49:55 -0700 | From | Kees Cook <> | Subject | Re: [PATCH v2 4/8] x86/kaslr: Initialize mem_limit to the real maximum address |
| |
On Mon, Jul 27, 2020 at 07:07:57PM -0400, Arvind Sankar wrote: > On 64-bit, the kernel must be placed below MAXMEM (64TiB with 4-level > paging or 4PiB with 5-level paging). This is currently not enforced by > KASLR, which thus implicitly relies on physical memory being limited to > less than 64TiB. > > On 32-bit, the limit is KERNEL_IMAGE_SIZE (512MiB). This is enforced by > special checks in __process_mem_region. > > Initialize mem_limit to the maximum (depending on architecture), instead > of ULLONG_MAX, and make sure the command-line arguments can only > decrease it. This makes the enforcement explicit on 64-bit, and > eliminates the 32-bit specific checks to keep the kernel below 512M. > > Check upfront to make sure the minimum address is below the limit before > doing any work. > > Signed-off-by: Arvind Sankar <nivedita@alum.mit.edu>
Acked-by: Kees Cook <keescook@chromium.org>
-- Kees Cook
|