aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWill Deacon <will.deacon@arm.com>2017-11-14 16:19:39 +0000
committerTodd Kjos <tkjos@google.com>2018-01-08 09:43:37 -0800
commit8bf8c09a1d679fb6ca36b10082653290e74832b0 (patch)
tree7eb7210e9dccbef1cebd7a40a5e22cb61aa443af
parent4f54ab5fac6a9e6a461115a55c480c342122b4b0 (diff)
arm64: Kconfig: Reword UNMAP_KERNEL_AT_EL0 kconfig entryASB-2018-01-05_3.18-o-release
Although CONFIG_UNMAP_KERNEL_AT_EL0 does make KASLR more robust, it's actually more useful as a mitigation against speculation attacks that can leak arbitrary kernel data to userspace through speculation. Reword the Kconfig help message to reflect this, and make the option depend on EXPERT so that it is on by default for the majority of users. Signed-off-by: Will Deacon <will.deacon@arm.com> Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
-rw-r--r--arch/arm64/Kconfig13
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig
index ad927b44ceca..e1dcafa82559 100644
--- a/arch/arm64/Kconfig
+++ b/arch/arm64/Kconfig
@@ -528,15 +528,14 @@ config FORCE_MAX_ZONEORDER
default "11"
config UNMAP_KERNEL_AT_EL0
- bool "Unmap kernel when running in userspace (aka \"KAISER\")"
+ bool "Unmap kernel when running in userspace (aka \"KAISER\")" if EXPERT
default y
help
- Some attacks against KASLR make use of the timing difference between
- a permission fault which could arise from a page table entry that is
- present in the TLB, and a translation fault which always requires a
- page table walk. This option defends against these attacks by unmapping
- the kernel whilst running in userspace, therefore forcing translation
- faults for all of kernel space.
+ Speculation attacks against some high-performance processors can
+ be used to bypass MMU permission checks and leak kernel data to
+ userspace. This can be defended against by unmapping the kernel
+ when running in userspace, mapping it back in on exception entry
+ via a trampoline page in the vector table.
If unsure, say Y.