From: Matthew Garrett <matthewgarrett@google.com>
To: jmorris@namei.org
Cc: Matthew Garrett <mjg59@srcf.ucam.org>,
linux-api@vger.kernel.org, kexec@lists.infradead.org,
linux-kernel@vger.kernel.org, Matthew Garrett <mjg59@google.com>,
dhowells@redhat.com, linux-security-module@vger.kernel.org,
luto@kernel.org, Dave Young <dyoung@redhat.com>
Subject: [PATCH V31 04/25] kexec_load: Disable at runtime if the kernel is locked down
Date: Tue, 26 Mar 2019 11:27:20 -0700 [thread overview]
Message-ID: <20190326182742.16950-5-matthewgarrett@google.com> (raw)
In-Reply-To: <20190326182742.16950-1-matthewgarrett@google.com>
From: Matthew Garrett <mjg59@srcf.ucam.org>
The kexec_load() syscall permits the loading and execution of arbitrary
code in ring 0, which is something that lock-down is meant to prevent. It
makes sense to disable kexec_load() in this situation.
This does not affect kexec_file_load() syscall which can check for a
signature on the image to be booted.
Signed-off-by: David Howells <dhowells@redhat.com>
Signed-off-by: Matthew Garrett <mjg59@google.com>
Acked-by: Dave Young <dyoung@redhat.com>
cc: kexec@lists.infradead.org
---
kernel/kexec.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/kernel/kexec.c b/kernel/kexec.c
index 68559808fdfa..57047acc9a36 100644
--- a/kernel/kexec.c
+++ b/kernel/kexec.c
@@ -207,6 +207,14 @@ static inline int kexec_load_check(unsigned long nr_segments,
if (result < 0)
return result;
+ /*
+ * kexec can be used to circumvent module loading restrictions, so
+ * prevent loading in that case
+ */
+ if (kernel_is_locked_down("kexec of unsigned images",
+ LOCKDOWN_INTEGRITY))
+ return -EPERM;
+
/*
* Verify we have a legal set of flags
* This leaves us room for future extensions.
--
2.21.0.392.gf8f6787159e-goog
_______________________________________________
kexec mailing list
kexec@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/kexec
next parent reply other threads:[~2019-03-26 18:28 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20190326182742.16950-1-matthewgarrett@google.com>
2019-03-26 18:27 ` Matthew Garrett [this message]
2019-03-26 18:27 ` [PATCH V31 05/25] Copy secure_boot flag in boot params across kexec reboot Matthew Garrett
2019-03-26 18:27 ` [PATCH V31 06/25] kexec_file: split KEXEC_VERIFY_SIG into KEXEC_SIG and KEXEC_SIG_FORCE Matthew Garrett
2019-06-21 6:34 ` Dave Young
2019-06-21 20:13 ` Matthew Garrett
2019-06-21 20:14 ` Matthew Garrett
2019-03-26 18:27 ` [PATCH V31 07/25] kexec_file: Restrict at runtime if the kernel is locked down Matthew Garrett
2019-06-21 6:43 ` Dave Young
2019-06-21 20:18 ` Matthew Garrett
2019-06-24 1:52 ` Dave Young
2019-06-24 21:06 ` Matthew Garrett
2019-06-24 21:27 ` Mimi Zohar
2019-06-25 0:02 ` Matthew Garrett
2019-06-25 1:46 ` Mimi Zohar
2019-06-25 2:51 ` Dave Young
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=20190326182742.16950-5-matthewgarrett@google.com \
--to=matthewgarrett@google.com \
--cc=dhowells@redhat.com \
--cc=dyoung@redhat.com \
--cc=jmorris@namei.org \
--cc=kexec@lists.infradead.org \
--cc=linux-api@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-security-module@vger.kernel.org \
--cc=luto@kernel.org \
--cc=mjg59@google.com \
--cc=mjg59@srcf.ucam.org \
/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: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox