Re: [x86, kaslr] BUG: kernel boot hang

From: Kees Cook
Date: Tue Jan 14 2014 - 13:32:13 EST


On Tue, Jan 14, 2014 at 8:02 AM, H. Peter Anvin <hpa@xxxxxxxxxxxxxxx> wrote:
> On 01/14/2014 05:31 AM, Fengguang Wu wrote:
>> Greetings,
>>
>> I got the below dmesg and the first bad commit is
>>
>> commit 82fa9637a2ba285bcc7c5050c73010b2c1b3d803
>> Author: Kees Cook <keescook@xxxxxxxxxxxx>
>> AuthorDate: Thu Oct 10 17:18:16 2013 -0700
>> Commit: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
>> CommitDate: Sun Oct 13 03:12:19 2013 -0700
>>
>> x86, kaslr: Select random position from e820 maps
>>
>> Counts available alignment positions across all e820 maps, and chooses
>> one randomly for the new kernel base address, making sure not to collide
>> with unsafe memory areas.
>>
>> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
>> Link: http://lkml.kernel.org/r/1381450698-28710-5-git-send-email-keescook@xxxxxxxxxxxx
>> Signed-off-by: H. Peter Anvin <hpa@xxxxxxxxxxxxxxx>
>>
>> Note that there are many other warning/errors and it's not very
>> reproducible, so this report might be wrong.
>>
>> ===================================================
>> PARENT COMMIT NOT CLEAN. LOOK OUT FOR WRONG BISECT!
>> ===================================================
>>
>
> I wonder if this is in any way related to the fact that the ELF parser
> we have in the decompressor is quite frankly complete crap... it assumes
> that all sections can only be moved downward.

Not that this would change the code here, but I notice tip:x86/kaslr
isn't fully up to date. It's still missing the two most recent
commits:

https://git.kernel.org/cgit/linux/kernel/git/kees/linux.git/log/?h=kaslr-c-v8

"x86, kaslr: clarify RANDOMIZE_BASE_MAX_OFFSET"
"x86, kaslr: remove unused including <linux/version.h>"

-Kees

--
Kees Cook
Chrome OS Security
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/