xen: arm: enable stack protector feature

Enable previously added CONFIG_STACK_PROTECTOR feature for ARM
platform. Initialize stack protector magic value very early, at the
very beginning of start_xen() function.

We want to do this early because prior to that
boot_stack_chk_guard_setup() call, default stack protector guard value
is used. While it is fine for general development and testing, it does
not provide highest security level, because potential attacker will
know the default value and can alter a payload, so correct stack
guard value will be placed in the correct position.

Apart from that argument, boot_stack_chk_guard_setup() should be
called prior to enabling secondary CPUs to avoid race with them.

Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk@epam.com>
Acked-by: Julien Grall <jgrall@amazon.com>
This commit is contained in:
Volodymyr Babchuk authored and Jan Beulich committed 2025-04-14 13:07:38 +02:00
1 parent be2a6a1096
commit 1ec1462032
2 files changed
+4

No files matched your search

+1
View File
@@ -15,6 +15,7 @@ config ARM
select GENERIC_UART_INIT
select HAS_ALTERNATIVE if HAS_VMAP
select HAS_DEVICE_TREE
select HAS_STACK_PROTECTOR
select HAS_UBSAN
config ARCH_DEFCONFIG
+3
View File
@@ -30,6 +30,7 @@
#include <xen/virtual_region.h>
#include <xen/version.h>
#include <xen/vmap.h>
#include <xen/stack-protector.h>
#include <xen/trace.h>
#include <xen/libfdt/libfdt-xen.h>
#include <xen/acpi.h>
@@ -306,6 +307,8 @@ void asmlinkage __init start_xen(unsigned long fdt_paddr)
struct domain *d;
int rc, i;
boot_stack_chk_guard_setup();
dcache_line_bytes = read_dcache_line_bytes();
percpu_init_areas();
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.