Skip to content

Commit 9c573cd

Browse files
committed
randomize_kstack: Improve entropy diffusion
The kstack_offset variable was really only ever using the low bits for kernel stack offset entropy. Add a ror32() to increase bit diffusion. Suggested-by: Arnd Bergmann <arnd@arndb.de> Fixes: 39218ff ("stack: Optionally randomize kernel stack offset each syscall") Link: https://lore.kernel.org/r/20240309202445.work.165-kees@kernel.org Signed-off-by: Kees Cook <keescook@chromium.org>
1 parent bbda3ba commit 9c573cd

1 file changed

Lines changed: 1 addition & 1 deletion

File tree

include/linux/randomize_kstack.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ DECLARE_PER_CPU(u32, kstack_offset);
8080
if (static_branch_maybe(CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT, \
8181
&randomize_kstack_offset)) { \
8282
u32 offset = raw_cpu_read(kstack_offset); \
83-
offset ^= (rand); \
83+
offset = ror32(offset, 5) ^ (rand); \
8484
raw_cpu_write(kstack_offset, offset); \
8585
} \
8686
} while (0)

0 commit comments

Comments
 (0)