• Ard Biesheuvel's avatar
    efi: libstub: Disable struct randomization · 1a388792
    Ard Biesheuvel authored
    The EFI stub is a wrapper around the core kernel that makes it look like
    a EFI compatible PE/COFF application to the EFI firmware. EFI
    applications run on top of the EFI runtime, which is heavily based on
    so-called protocols, which are struct types consisting [mostly] of
    function pointer members that are instantiated and recorded in a
    protocol database.
    
    These structs look like the ideal randomization candidates to the
    randstruct plugin (as they only carry function pointers), but of course,
    these protocols are contracts between the firmware that exposes them,
    and the EFI applications (including our stubbed kernel) that invoke
    them. This means that struct randomization for EFI protocols is not a
    great idea, and given that the stub shares very little data with the
    core kernel that is represented as a randomizable struct, we're better
    off just disabling it completely here.
    
    Cc: <stable@vger.kernel.org> # v4.14+
    Reported-by: default avatarDaniel Marth <daniel.marth@inso.tuwien.ac.at>
    Tested-by: default avatarDaniel Marth <daniel.marth@inso.tuwien.ac.at>
    Signed-off-by: default avatarArd Biesheuvel <ardb@kernel.org>
    Acked-by: default avatarKees Cook <keescook@chromium.org>
    1a388792
Makefile 6.07 KB