• Ard Biesheuvel's avatar
    x86/efistub: Remap kernel text read-only before dropping NX attribute · 9c554610
    Ard Biesheuvel authored
    Currently, the EFI stub invokes the EFI memory attributes protocol to
    strip any NX restrictions from the entire loaded kernel, resulting in
    all code and data being mapped read-write-execute.
    
    The point of the EFI memory attributes protocol is to remove the need
    for all memory allocations to be mapped with both write and execute
    permissions by default, and make it the OS loader's responsibility to
    transition data mappings to code mappings where appropriate.
    
    Even though the UEFI specification does not appear to leave room for
    denying memory attribute changes based on security policy, let's be
    cautious and avoid relying on the ability to create read-write-execute
    mappings. This is trivially achievable, given that the amount of kernel
    code executing via the firmware's 1:1 mapping is rather small and
    limited to the .head.text region. So let's drop the NX restrictions only
    on that subregion, but not before remapping it as read-only first.
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    9c554610
boot.h 2.64 KB