[PATCH v2 0/3] Makefile: Introduce CONFIG_CC_STACKPROTECTOR_AUTO

From: Kees Cook
Date: Tue Nov 07 2017 - 12:39:10 EST


As described in the final patch:

Nearly all modern compilers support a stack-protector option, and nearly
all modern distributions enable the kernel stack-protector, so enabling
this by default in kernel builds would make sense. However, Kconfig does
not have knowledge of available compiler features, so it isn't safe to
force on, as this would unconditionally break builds for the compilers
or architectures that don't have support. Instead, this introduces a new
option, CONFIG_CC_STACKPROTECTOR_AUTO, which attempts to discover the best
possible stack-protector available, and will allow builds to proceed even
if the compiler doesn't support any stack-protector.

This option is made the default so that kernels built with modern
compilers will be protected-by-default against stack buffer overflows,
avoiding things like the recent BlueBorne attack. Selection of a specific
stack-protector option remains available, including disabling it.


This has lived over the last several days without any unfixed 0day failures.

v2:
- under ..._AUTO, warn and continue on _all_ stack protector failure cases
- fix 32-bit boot regression due to lazy gz.
- set CONFIG_CC_STACKPROTECTOR_NONE for tiny.config.

Thanks,

-Kees