On Mon, Jun 24, 2024 at 4:33 AM Jinjie Ruan <ruanjinjie@xxxxxxxxxx> wrote: > Add the STACKLEAK gcc plugin to arm32 by adding the helper used by > stackleak common code: on_thread_stack(). It initialize the stack with the > poison value before returning from system calls which improves the kernel > security. Additionally, this disables the plugin in EFI stub code and > decompress code, which are out of scope for the protection. > > Before the test on Qemu versatilepb board: > # echo STACKLEAK_ERASING > /sys/kernel/debug/provoke-crash/DIRECT > lkdtm: Performing direct entry STACKLEAK_ERASING > lkdtm: XFAIL: stackleak is not supported on this arch (HAVE_ARCH_STACKLEAK=n) > > After: > # echo STACKLEAK_ERASING > /sys/kernel/debug/provoke-crash/DIRECT > lkdtm: Performing direct entry STACKLEAK_ERASING > lkdtm: stackleak stack usage: > high offset: 80 bytes > current: 280 bytes > lowest: 696 bytes > tracked: 696 bytes > untracked: 192 bytes > poisoned: 7220 bytes > low offset: 4 bytes > lkdtm: OK: the rest of the thread stack is properly erased > > Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx> > Acked-by: Ard Biesheuvel <ardb@xxxxxxxxxx> Reviewed-by: Linus Walleij <linus.walleij@xxxxxxxxxx> I was digging around to see if this would interfere with BPF trampolines, but the BPF code seems so generic that I assume it already takes stackleak into account. Yours, Linus Walleij