projects
/
kconfig-hardened-check.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a4e54de
)
Add the UBSAN_LOCAL_BOUNDS check for Clang build
author
Alexander Popov
<alex.popov@linux.com>
Sat, 24 Sep 2022 21:51:25 +0000
(
00:51
+0300)
committer
Alexander Popov
<alex.popov@linux.com>
Sat, 24 Sep 2022 21:51:25 +0000
(
00:51
+0300)
Explanations from the Linux kernel commit
6a6155f664e31c9be43cd
:
When the kernel is compiled with Clang, -fsanitize=bounds expands to
-fsanitize=array-bounds and -fsanitize=local-bounds.
Enabling -fsanitize=local-bounds with Clang has the side-effect of
inserting traps.
That's why UBSAN_LOCAL_BOUNDS can enable the 'local-bounds' option
only when UBSAN_TRAP is enabled.
kconfig_hardened_check/__init__.py
patch
|
blob
|
history
diff --git
a/kconfig_hardened_check/__init__.py
b/kconfig_hardened_check/__init__.py
index 2cbcfa5e8197f592c7ad005aea65244d1504f56b..de7408417e020e4e630ccfd3eac69d5497e9c54c 100644
(file)
--- a/
kconfig_hardened_check/__init__.py
+++ b/
kconfig_hardened_check/__init__.py
@@
-505,6
+505,9
@@
def add_kconfig_checks(l, arch):
# 'self_protection', 'my'
l += [OR(KconfigCheck('self_protection', 'my', 'RESET_ATTACK_MITIGATION', 'y'),
efi_not_set)] # needs userspace support (systemd)
+ l += [OR(KconfigCheck('self_protection', 'my', 'UBSAN_LOCAL_BOUNDS', 'y'),
+ AND(ubsan_bounds_is_set,
+ cc_is_gcc))]
if arch == 'X86_64':
l += [KconfigCheck('self_protection', 'my', 'SLS', 'y')] # vs CVE-2021-26341 in Straight-Line-Speculation
l += [AND(KconfigCheck('self_protection', 'my', 'AMD_IOMMU_V2', 'y'),