diff options
-rw-r--r-- | arch/arm64/Kconfig | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/arch/arm64/Kconfig b/arch/arm64/Kconfig index 9b1330806f39..cb7a70e686cb 100644 --- a/arch/arm64/Kconfig +++ b/arch/arm64/Kconfig | |||
@@ -863,15 +863,14 @@ config FORCE_MAX_ZONEORDER | |||
863 | 4M allocations matching the default size used by generic code. | 863 | 4M allocations matching the default size used by generic code. |
864 | 864 | ||
865 | config UNMAP_KERNEL_AT_EL0 | 865 | config UNMAP_KERNEL_AT_EL0 |
866 | bool "Unmap kernel when running in userspace (aka \"KAISER\")" | 866 | bool "Unmap kernel when running in userspace (aka \"KAISER\")" if EXPERT |
867 | default y | 867 | default y |
868 | help | 868 | help |
869 | Some attacks against KASLR make use of the timing difference between | 869 | Speculation attacks against some high-performance processors can |
870 | a permission fault which could arise from a page table entry that is | 870 | be used to bypass MMU permission checks and leak kernel data to |
871 | present in the TLB, and a translation fault which always requires a | 871 | userspace. This can be defended against by unmapping the kernel |
872 | page table walk. This option defends against these attacks by unmapping | 872 | when running in userspace, mapping it back in on exception entry |
873 | the kernel whilst running in userspace, therefore forcing translation | 873 | via a trampoline page in the vector table. |
874 | faults for all of kernel space. | ||
875 | 874 | ||
876 | If unsure, say Y. | 875 | If unsure, say Y. |
877 | 876 | ||