x86/Kconfig: Enable kernel IBT by default
authorKees Cook <keescook@chromium.org>
Tue, 1 Nov 2022 17:25:07 +0000 (10:25 -0700)
committerPeter Zijlstra <peterz@infradead.org>
Sat, 5 Nov 2022 10:28:03 +0000 (11:28 +0100)
commit4fd5f70ce14da230c6a29648c3d51a48ee0b4bfd
tree2012d4b0fdcd548266b6d0c2f36506b4f99c6052
parentb32fd8a60f5d855758208c2b5b49cba8087f03c4
x86/Kconfig: Enable kernel IBT by default

The kernel IBT defense strongly mitigates the common "first step" of ROP
attacks, by eliminating arbitrary stack pivots (that appear either at
the end of a function or in immediate values), which cannot be reached
if indirect calls must be to marked function entry addresses. IBT is
also required to be enabled to gain the FineIBT feature when built with
Kernel Control Flow Integrity.

Additionally, given that this feature is runtime enabled via CPU ID,
it clearly should be built in by default; it will only be enabled if the
CPU supports it. The build takes 2 seconds longer, which seems a small
price to pay for gaining this coverage by default.

Suggested-by: Sami Tolvanen <samitolvanen@google.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Link: https://lkml.kernel.org/r/20221101172503.gonna.094-kees@kernel.org
arch/x86/Kconfig