From: Lenny Szubowicz <lszubowi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
To: Matthew Garrett
<matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
jwboyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org,
keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
Vivek Goyal <vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
Subject: Re: [PATCH V2 08/10] kexec: Disable at runtime if the kernel enforces module loading restrictions
Date: Thu, 29 Aug 2013 14:14:55 -0400 (EDT) [thread overview]
Message-ID: <1776247498.9768326.1377800095494.JavaMail.root@redhat.com> (raw)
In-Reply-To: <410604531.9664777.1377791856786.JavaMail.root-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
----- Original Message -----
> From: "Lenny Szubowicz" <lszubowi-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
> To: "Matthew Garrett" <matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>, linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, jwboyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org
> Sent: Thursday, August 29, 2013 11:57:36 AM
> Subject: Re: [PATCH V2 08/10] kexec: Disable at runtime if the kernel enforces module loading restrictions
>
>
>
> ----- Original Message -----
> > From: "Matthew Garrett" <matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
> > To: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > Cc: linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org, jwboyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org, keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org,
> > "Matthew Garrett"
> > <matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
> > Sent: Monday, August 19, 2013 1:26:09 PM
> > Subject: [PATCH V2 08/10] kexec: Disable at runtime if the kernel enforces
> > module loading restrictions
> >
> > kexec permits the loading and execution of arbitrary code in ring 0, which
> > is something that module signing enforcement is meant to prevent. It makes
> > sense to disable kexec in this situation.
> >
> > Signed-off-by: Matthew Garrett <matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
> > ---
> > kernel/kexec.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/kernel/kexec.c b/kernel/kexec.c
> > index 59f7b55..1a7690f 100644
> > --- a/kernel/kexec.c
> > +++ b/kernel/kexec.c
> > @@ -32,6 +32,7 @@
> > #include <linux/vmalloc.h>
> > #include <linux/swap.h>
> > #include <linux/syscore_ops.h>
> > +#include <linux/module.h>
> >
> > #include <asm/page.h>
> > #include <asm/uaccess.h>
> > @@ -1645,6 +1646,9 @@ int kernel_kexec(void)
> > goto Unlock;
> > }
> >
> > + if (secure_modules())
> > + return -EPERM;
> > +
> > #ifdef CONFIG_KEXEC_JUMP
> > if (kexec_image->preserve_context) {
> > lock_system_sleep();
> > --
> > 1.8.3.1
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
>
> Shouldn't that be:
>
> + if (secure_modules()) {
> + error = -EPERM;
> + goto Unlock;
> + }
>
> -Lenny.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
Also, in earlier incarnations you disallowed kexec load in secure mode.
But now you allow the load. You then disallow the transfer of control
to the loaded code via kernel_kexec in secure mode.
Even if there might be no risk by having untrusted code remain loaded, why
not prevent it up front?
-Lenny.
WARNING: multiple messages have this Message-ID (diff)
From: Lenny Szubowicz <lszubowi@redhat.com>
To: Matthew Garrett <matthew.garrett@nebula.com>,
linux-kernel@vger.kernel.org
Cc: linux-efi@vger.kernel.org, jwboyer@redhat.com,
keescook@chromium.org, Vivek Goyal <vgoyal@redhat.com>
Subject: Re: [PATCH V2 08/10] kexec: Disable at runtime if the kernel enforces module loading restrictions
Date: Thu, 29 Aug 2013 14:14:55 -0400 (EDT) [thread overview]
Message-ID: <1776247498.9768326.1377800095494.JavaMail.root@redhat.com> (raw)
In-Reply-To: <410604531.9664777.1377791856786.JavaMail.root@redhat.com>
----- Original Message -----
> From: "Lenny Szubowicz" <lszubowi@redhat.com>
> To: "Matthew Garrett" <matthew.garrett@nebula.com>, linux-kernel@vger.kernel.org
> Cc: linux-efi@vger.kernel.org, jwboyer@redhat.com, keescook@chromium.org
> Sent: Thursday, August 29, 2013 11:57:36 AM
> Subject: Re: [PATCH V2 08/10] kexec: Disable at runtime if the kernel enforces module loading restrictions
>
>
>
> ----- Original Message -----
> > From: "Matthew Garrett" <matthew.garrett@nebula.com>
> > To: linux-kernel@vger.kernel.org
> > Cc: linux-efi@vger.kernel.org, jwboyer@redhat.com, keescook@chromium.org,
> > "Matthew Garrett"
> > <matthew.garrett@nebula.com>
> > Sent: Monday, August 19, 2013 1:26:09 PM
> > Subject: [PATCH V2 08/10] kexec: Disable at runtime if the kernel enforces
> > module loading restrictions
> >
> > kexec permits the loading and execution of arbitrary code in ring 0, which
> > is something that module signing enforcement is meant to prevent. It makes
> > sense to disable kexec in this situation.
> >
> > Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com>
> > ---
> > kernel/kexec.c | 4 ++++
> > 1 file changed, 4 insertions(+)
> >
> > diff --git a/kernel/kexec.c b/kernel/kexec.c
> > index 59f7b55..1a7690f 100644
> > --- a/kernel/kexec.c
> > +++ b/kernel/kexec.c
> > @@ -32,6 +32,7 @@
> > #include <linux/vmalloc.h>
> > #include <linux/swap.h>
> > #include <linux/syscore_ops.h>
> > +#include <linux/module.h>
> >
> > #include <asm/page.h>
> > #include <asm/uaccess.h>
> > @@ -1645,6 +1646,9 @@ int kernel_kexec(void)
> > goto Unlock;
> > }
> >
> > + if (secure_modules())
> > + return -EPERM;
> > +
> > #ifdef CONFIG_KEXEC_JUMP
> > if (kexec_image->preserve_context) {
> > lock_system_sleep();
> > --
> > 1.8.3.1
> >
> > --
> > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> > the body of a message to majordomo@vger.kernel.org
> > More majordomo info at http://vger.kernel.org/majordomo-info.html
> > Please read the FAQ at http://www.tux.org/lkml/
> >
>
>
> Shouldn't that be:
>
> + if (secure_modules()) {
> + error = -EPERM;
> + goto Unlock;
> + }
>
> -Lenny.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>
Also, in earlier incarnations you disallowed kexec load in secure mode.
But now you allow the load. You then disallow the transfer of control
to the loaded code via kernel_kexec in secure mode.
Even if there might be no risk by having untrusted code remain loaded, why
not prevent it up front?
-Lenny.
next prev parent reply other threads:[~2013-08-29 18:14 UTC|newest]
Thread overview: 49+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-08-19 17:26 [PATCH 0/10] Add additional security checks when module loading is restricted Matthew Garrett
2013-08-19 17:26 ` Matthew Garrett
2013-08-19 17:26 ` [PATCH V2 01/10] Add secure_modules() call Matthew Garrett
[not found] ` <1376933171-9854-2-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-08-29 15:01 ` Josh Boyer
2013-08-29 15:01 ` Josh Boyer
[not found] ` <1376933171-9854-1-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-08-19 17:26 ` [PATCH V2 02/10] PCI: Lock down BAR access when module security is enabled Matthew Garrett
2013-08-19 17:26 ` Matthew Garrett
2013-08-19 17:26 ` [PATCH V2 06/10] Restrict /dev/mem and /dev/kmem when module loading is restricted Matthew Garrett
2013-08-19 17:26 ` Matthew Garrett
2013-08-19 17:26 ` [PATCH V2 10/10] Add option to automatically enforce module signatures when in Secure Boot mode Matthew Garrett
2013-08-19 17:26 ` Matthew Garrett
2013-08-29 18:37 ` Josh Boyer
[not found] ` <20130829183713.GT20828-dHPIJuKSOV01V+h/cAXI7w8O6CCKKCg3HZ5vskTnxNA@public.gmane.org>
2013-08-30 20:46 ` H. Peter Anvin
2013-08-30 20:46 ` H. Peter Anvin
[not found] ` <522104A6.5000700-YMNOUZJC4hwAvxtiuMwx3w@public.gmane.org>
2013-08-30 23:41 ` Josh Boyer
2013-08-30 23:41 ` Josh Boyer
[not found] ` <20130830234133.GR20828-dHPIJuKSOV01V+h/cAXI7w8O6CCKKCg3HZ5vskTnxNA@public.gmane.org>
2013-09-04 10:51 ` joeyli
2013-09-04 10:51 ` joeyli
[not found] ` <1378291877.6380.74.camel-ONCj+Eqt86TasUa73XJKwA@public.gmane.org>
2013-09-04 12:01 ` Josh Boyer
2013-09-04 12:01 ` Josh Boyer
[not found] ` <CA+5PVA4J1mL0o=MHM-D81rcViR+E3JUyGChvHe8P+3+yt3v_qA-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-04 13:13 ` joeyli
2013-09-04 13:13 ` joeyli
2013-08-28 22:37 ` [PATCH 0/10] Add additional security checks when module loading is restricted Lenny Szubowicz
2013-08-28 22:37 ` Lenny Szubowicz
[not found] ` <1241952070.8587861.1377729463830.JavaMail.root-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-08-28 22:41 ` Matthew Garrett
2013-08-28 22:41 ` Matthew Garrett
2013-08-28 22:58 ` Lenny Szubowicz
2013-08-28 22:58 ` Lenny Szubowicz
[not found] ` <761791749.8594444.1377730692707.JavaMail.root-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-08-28 23:05 ` Matthew Garrett
2013-08-28 23:05 ` Matthew Garrett
2013-08-28 23:07 ` Kees Cook
2013-08-28 23:07 ` Kees Cook
2013-08-28 23:12 ` Matthew Garrett
2013-08-28 23:12 ` Matthew Garrett
[not found] ` <CAGXu5jKQtx1OEn8qT8+LgHL+xFgK_pHGrxtdwFfKT1q3FHhaNg-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2013-09-02 5:22 ` joeyli
2013-09-02 5:22 ` joeyli
2013-08-19 17:26 ` [PATCH V2 03/10] x86: Lock down IO port access when module security is enabled Matthew Garrett
2013-08-19 17:26 ` [PATCH V2 04/10] ACPI: Limit access to custom_method Matthew Garrett
2013-08-19 17:26 ` [PATCH V2 05/10] asus-wmi: Restrict debugfs interface when module loading is restricted Matthew Garrett
2013-08-19 17:26 ` [PATCH V2 07/10] acpi: Ignore acpi_rsdp kernel parameter " Matthew Garrett
2013-08-19 17:26 ` [PATCH V2 08/10] kexec: Disable at runtime if the kernel enforces module loading restrictions Matthew Garrett
[not found] ` <1376933171-9854-9-git-send-email-matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org>
2013-08-29 15:57 ` Lenny Szubowicz
2013-08-29 15:57 ` Lenny Szubowicz
[not found] ` <410604531.9664777.1377791856786.JavaMail.root-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-08-29 18:14 ` Lenny Szubowicz [this message]
2013-08-29 18:14 ` Lenny Szubowicz
2013-08-29 18:10 ` Vivek Goyal
2013-08-29 18:10 ` Vivek Goyal
2013-08-19 17:26 ` [PATCH V2 09/10] x86: Restrict MSR access when module loading is restricted Matthew Garrett
2013-08-19 17:34 ` [PATCH 0/10] Add additional security checks " Kees Cook
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=1776247498.9768326.1377800095494.JavaMail.root@redhat.com \
--to=lszubowi-h+wxahxf7alqt0dzr+alfa@public.gmane.org \
--cc=jwboyer-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org \
--cc=keescook-F7+t8E8rja9g9hUCZPvPmw@public.gmane.org \
--cc=linux-efi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=matthew.garrett-05XSO3Yj/JvQT0dZR+AlfA@public.gmane.org \
--cc=vgoyal-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.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 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.