From: Casey Schaufler <casey.schaufler@intel.com> To: kernel-hardening@lists.openwall.com, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org, selinux@tycho.nsa.gov, SMACK-discuss@lists.01.org, casey.schaufler@intel.com, dave.hansen@intel.com, deneen.t.dock@intel.com, kristen@linux.intel.com, arjan@linux.intel.com Subject: [PATCH RFC 2/5] X86: Support LSM determination of side-channel vulnerability Date: Wed, 15 Aug 2018 16:53:52 -0700 [thread overview] Message-ID: <20180815235355.14908-3-casey.schaufler@intel.com> (raw) In-Reply-To: <20180815235355.14908-1-casey.schaufler@intel.com> From: Casey Schaufler <cschaufler@localhost.localdomain> When switching between tasks it may be necessary to set an indirect branch prediction barrier if the tasks are potentially vulnerable to side-channel attacks. This adds a call to security_task_safe_sidechannel so that security modules can weigh in on the decision. Signed-off-by: Casey Schaufler <casey.schaufler@intel.com> --- arch/x86/mm/tlb.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c index 6eb1f34c3c85..8714d4af06aa 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -7,6 +7,7 @@ #include <linux/export.h> #include <linux/cpu.h> #include <linux/debugfs.h> +#include <linux/security.h> #include <asm/tlbflush.h> #include <asm/mmu_context.h> @@ -270,11 +271,14 @@ void switch_mm_irqs_off(struct mm_struct *prev, struct mm_struct *next, * threads. It will also not flush if we switch to idle * thread and back to the same process. It will flush if we * switch to a different non-dumpable process. + * If a security module thinks that the transition + * is unsafe do the flush. */ - if (tsk && tsk->mm && - tsk->mm->context.ctx_id != last_ctx_id && - get_dumpable(tsk->mm) != SUID_DUMP_USER) - indirect_branch_prediction_barrier(); + if (tsk && tsk->mm && tsk->mm->context.ctx_id != last_ctx_id) { + if (get_dumpable(tsk->mm) != SUID_DUMP_USER || + security_task_safe_sidechannel(tsk) != 0) + indirect_branch_prediction_barrier(); + } if (IS_ENABLED(CONFIG_VMAP_STACK)) { /* -- 2.17.1
WARNING: multiple messages have this Message-ID (diff)
From: casey.schaufler@intel.com (Casey Schaufler) To: linux-security-module@vger.kernel.org Subject: [PATCH RFC 2/5] X86: Support LSM determination of side-channel vulnerability Date: Wed, 15 Aug 2018 16:53:52 -0700 [thread overview] Message-ID: <20180815235355.14908-3-casey.schaufler@intel.com> (raw) In-Reply-To: <20180815235355.14908-1-casey.schaufler@intel.com> From: Casey Schaufler <cschaufler@localhost.localdomain> When switching between tasks it may be necessary to set an indirect branch prediction barrier if the tasks are potentially vulnerable to side-channel attacks. This adds a call to security_task_safe_sidechannel so that security modules can weigh in on the decision. Signed-off-by: Casey Schaufler <casey.schaufler@intel.com> --- arch/x86/mm/tlb.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/arch/x86/mm/tlb.c b/arch/x86/mm/tlb.c index 6eb1f34c3c85..8714d4af06aa 100644 --- a/arch/x86/mm/tlb.c +++ b/arch/x86/mm/tlb.c @@ -7,6 +7,7 @@ #include <linux/export.h> #include <linux/cpu.h> #include <linux/debugfs.h> +#include <linux/security.h> #include <asm/tlbflush.h> #include <asm/mmu_context.h> @@ -270,11 +271,14 @@ void switch_mm_irqs_off(struct mm_struct *prev, struct mm_struct *next, * threads. It will also not flush if we switch to idle * thread and back to the same process. It will flush if we * switch to a different non-dumpable process. + * If a security module thinks that the transition + * is unsafe do the flush. */ - if (tsk && tsk->mm && - tsk->mm->context.ctx_id != last_ctx_id && - get_dumpable(tsk->mm) != SUID_DUMP_USER) - indirect_branch_prediction_barrier(); + if (tsk && tsk->mm && tsk->mm->context.ctx_id != last_ctx_id) { + if (get_dumpable(tsk->mm) != SUID_DUMP_USER || + security_task_safe_sidechannel(tsk) != 0) + indirect_branch_prediction_barrier(); + } if (IS_ENABLED(CONFIG_VMAP_STACK)) { /* -- 2.17.1
next prev parent reply other threads:[~2018-08-15 23:54 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2018-08-15 23:53 [PATCH RFC 0/5] LSM: Add and use a hook for side-channel safety checks Casey Schaufler 2018-08-15 23:53 ` Casey Schaufler 2018-08-15 23:53 ` [PATCH RFC 1/5] LSM: Introduce a hook for side-channel danger Casey Schaufler 2018-08-15 23:53 ` Casey Schaufler 2018-08-15 23:53 ` Casey Schaufler [this message] 2018-08-15 23:53 ` [PATCH RFC 2/5] X86: Support LSM determination of side-channel vulnerability Casey Schaufler 2018-08-16 14:09 ` Jann Horn 2018-08-16 14:09 ` Jann Horn 2018-08-15 23:53 ` [PATCH RFC 3/5] LSM: Security module checking for side-channel dangers Casey Schaufler 2018-08-15 23:53 ` Casey Schaufler 2018-08-16 14:15 ` Jann Horn 2018-08-16 14:15 ` Jann Horn 2018-08-15 23:53 ` [PATCH RFC 4/5] Smack: Support determination of side-channel vulnerability Casey Schaufler 2018-08-15 23:53 ` Casey Schaufler 2018-08-15 23:53 ` [PATCH RFC 5/5] SELinux: Support SELinux " Casey Schaufler 2018-08-15 23:53 ` Casey Schaufler 2018-08-16 14:12 ` Stephen Smalley 2018-08-16 14:12 ` Stephen Smalley 2018-08-16 14:22 ` Jann Horn 2018-08-16 14:22 ` Jann Horn
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20180815235355.14908-3-casey.schaufler@intel.com \ --to=casey.schaufler@intel.com \ --cc=SMACK-discuss@lists.01.org \ --cc=arjan@linux.intel.com \ --cc=dave.hansen@intel.com \ --cc=deneen.t.dock@intel.com \ --cc=kernel-hardening@lists.openwall.com \ --cc=kristen@linux.intel.com \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-security-module@vger.kernel.org \ --cc=selinux@tycho.nsa.gov \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.