Messages in this thread Patch in this message | | | From | Tim Chen <> | Subject | [Patch v3 12/13] x86/speculation: Protect non-dumpable processes against Spectre v2 attack | Date | Wed, 17 Oct 2018 10:59:40 -0700 |
| |
Mark the non-dumpable processes with TIF_STIBP flag so they will use STIBP and IBPB defenses against Spectre v2 attack from processes in user space.
Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com> --- arch/x86/kernel/cpu/bugs.c | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+)
diff --git a/arch/x86/kernel/cpu/bugs.c b/arch/x86/kernel/cpu/bugs.c index 1d317f2..cc77b9e 100644 --- a/arch/x86/kernel/cpu/bugs.c +++ b/arch/x86/kernel/cpu/bugs.c @@ -14,6 +14,7 @@ #include <linux/module.h> #include <linux/nospec.h> #include <linux/prctl.h> +#include <linux/sched/coredump.h> #include <asm/spec-ctrl.h> #include <asm/cmdline.h> @@ -773,6 +774,26 @@ int arch_prctl_spec_ctrl_set(struct task_struct *task, unsigned long which, } } +void arch_set_dumpable(struct task_struct *tsk, unsigned int value) +{ + bool update; + + if (!static_branch_unlikely(&spectre_v2_app_lite)) + return; + if (!static_cpu_has(X86_FEATURE_STIBP)) + return; + if (spectre_v2_app2app_enabled == SPECTRE_V2_APP2APP_NONE) + return; + + if (tsk->mm && value != SUID_DUMP_USER) + update = !test_and_set_tsk_thread_flag(tsk, TIF_STIBP); + else + update = test_and_clear_tsk_thread_flag(tsk, TIF_STIBP); + + if (tsk == current && update) + speculation_ctrl_update_current(); +} + #ifdef CONFIG_SECCOMP void arch_seccomp_spec_mitigate(struct task_struct *task) { -- 2.9.4
| |