]> git.baikalelectronics.ru Git - kernel.git/commit
efi: libstub: Disable struct randomization
authorArd Biesheuvel <ardb@kernel.org>
Mon, 22 Aug 2022 17:20:33 +0000 (19:20 +0200)
committerArd Biesheuvel <ardb@kernel.org>
Thu, 25 Aug 2022 08:58:33 +0000 (10:58 +0200)
commit27e7c5e1bb72acea44a891f32e3b51b4c76a930c
tree3515715c8570b59d55a4c13c1b02c98b76c0c395
parent34a3249ab33a1690f58cd6e91a0208887337d3e0
efi: libstub: Disable struct randomization

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: Daniel Marth <daniel.marth@inso.tuwien.ac.at>
Tested-by: Daniel Marth <daniel.marth@inso.tuwien.ac.at>
Signed-off-by: Ard Biesheuvel <ardb@kernel.org>
Acked-by: Kees Cook <keescook@chromium.org>
drivers/firmware/efi/libstub/Makefile