stackleak: Allow runtime disabling of kernel stack erasing
Introduce CONFIG_STACKLEAK_RUNTIME_DISABLE option, which provides 'stack_erasing' sysctl. It can be used in runtime to control kernel stack erasing for kernels built with CONFIG_GCC_PLUGIN_STACKLEAK. Suggested-by: Ingo Molnar <mingo@kernel.org> Signed-off-by: Alexander Popov <alex.popov@linux.com> Tested-by: Laura Abbott <labbott@redhat.com> Signed-off-by: Kees Cook <keescook@chromium.org>
This commit is contained in:

committed by
Kees Cook

parent
ed535a2dae
commit
964c9dff00
@@ -89,6 +89,7 @@ show up in /proc/sys/kernel:
|
||||
- shmmni
|
||||
- softlockup_all_cpu_backtrace
|
||||
- soft_watchdog
|
||||
- stack_erasing
|
||||
- stop-a [ SPARC only ]
|
||||
- sysrq ==> Documentation/admin-guide/sysrq.rst
|
||||
- sysctl_writes_strict
|
||||
@@ -987,6 +988,23 @@ detect a hard lockup condition.
|
||||
|
||||
==============================================================
|
||||
|
||||
stack_erasing
|
||||
|
||||
This parameter can be used to control kernel stack erasing at the end
|
||||
of syscalls for kernels built with CONFIG_GCC_PLUGIN_STACKLEAK.
|
||||
|
||||
That erasing reduces the information which kernel stack leak bugs
|
||||
can reveal and blocks some uninitialized stack variable attacks.
|
||||
The tradeoff is the performance impact: on a single CPU system kernel
|
||||
compilation sees a 1% slowdown, other systems and workloads may vary.
|
||||
|
||||
0: kernel stack erasing is disabled, STACKLEAK_METRICS are not updated.
|
||||
|
||||
1: kernel stack erasing is enabled (default), it is performed before
|
||||
returning to the userspace at the end of syscalls.
|
||||
|
||||
==============================================================
|
||||
|
||||
tainted:
|
||||
|
||||
Non-zero if the kernel has been tainted. Numeric values, which can be
|
||||
|
Reference in New Issue
Block a user