Skip to content

Commit e048d66

Browse files
nathanchancekees
authored andcommitted
configs/hardening: Fix disabling UBSAN configurations
The initial change that added kernel/configs/hardening.config attempted to disable all UBSAN sanitizers except for the array bounds one while turning on UBSAN_TRAP. Unfortunately, it only got the syntax for CONFIG_UBSAN_SHIFT correct, so configurations that are on by default with CONFIG_UBSAN=y such as CONFIG_UBSAN_{BOOL,ENUM} do not get disabled properly. CONFIG_ARCH_HAS_UBSAN=y CONFIG_UBSAN=y CONFIG_UBSAN_TRAP=y CONFIG_CC_HAS_UBSAN_BOUNDS_STRICT=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS_STRICT=y # CONFIG_UBSAN_SHIFT is not set # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set CONFIG_UBSAN_SIGNED_WRAP=y CONFIG_UBSAN_BOOL=y CONFIG_UBSAN_ENUM=y # CONFIG_TEST_UBSAN is not set Add the missing 'is not set' to each configuration that needs it so that they get disabled as intended. CONFIG_ARCH_HAS_UBSAN=y CONFIG_UBSAN=y CONFIG_UBSAN_TRAP=y CONFIG_CC_HAS_UBSAN_BOUNDS_STRICT=y CONFIG_UBSAN_BOUNDS=y CONFIG_UBSAN_BOUNDS_STRICT=y # CONFIG_UBSAN_SHIFT is not set # CONFIG_UBSAN_DIV_ZERO is not set # CONFIG_UBSAN_UNREACHABLE is not set CONFIG_UBSAN_SIGNED_WRAP=y # CONFIG_UBSAN_BOOL is not set # CONFIG_UBSAN_ENUM is not set # CONFIG_TEST_UBSAN is not set Fixes: 215199e ("hardening: Provide Kconfig fragments for basic options") Signed-off-by: Nathan Chancellor <[email protected]> Link: https://lore.kernel.org/r/20240411-fix-ubsan-in-hardening-config-v1-1-e0177c80ffaa@kernel.org Signed-off-by: Kees Cook <[email protected]>
1 parent 0bbac3f commit e048d66

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

kernel/configs/hardening.config

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -39,11 +39,11 @@ CONFIG_UBSAN=y
3939
CONFIG_UBSAN_TRAP=y
4040
CONFIG_UBSAN_BOUNDS=y
4141
# CONFIG_UBSAN_SHIFT is not set
42-
# CONFIG_UBSAN_DIV_ZERO
43-
# CONFIG_UBSAN_UNREACHABLE
44-
# CONFIG_UBSAN_BOOL
45-
# CONFIG_UBSAN_ENUM
46-
# CONFIG_UBSAN_ALIGNMENT
42+
# CONFIG_UBSAN_DIV_ZERO is not set
43+
# CONFIG_UBSAN_UNREACHABLE is not set
44+
# CONFIG_UBSAN_BOOL is not set
45+
# CONFIG_UBSAN_ENUM is not set
46+
# CONFIG_UBSAN_ALIGNMENT is not set
4747

4848
# Sampling-based heap out-of-bounds and use-after-free detection.
4949
CONFIG_KFENCE=y

0 commit comments

Comments
 (0)