Message ID | 20190830154720.eekfjt6c4jzvlbfz@decadent.org.uk (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/2] staging: comedi: Restrict COMEDI_DEVCONFIG when the kernel is locked down | expand |
On Fri, Aug 30, 2019 at 11:47 AM Ben Hutchings <ben@decadent.org.uk> wrote: > > These drivers allow mapping arbitrary memory ranges as MTD devices. > This should be disabled to preserve the kernel's integrity when it is > locked down. > > * Add the HWPARAM flag to the module parameters > * When slram is built-in, it uses __setup() to read kernel parameters, > so add an explicit check security_locked_down() check > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > Cc: Matthew Garrett <mjg59@google.com> > Cc: David Howells <dhowells@redhat.com> > Cc: Joern Engel <joern@lazybastard.org> > Cc: linux-mtd@lists.infradead.org Reviewed-by: Matthew Garrett <mjg59@google.com> James, should I pick patches like this up and send them to you, or will you queue them directly after they're acked?
On Tue, 10 Sep 2019, Matthew Garrett wrote: > On Fri, Aug 30, 2019 at 11:47 AM Ben Hutchings <ben@decadent.org.uk> wrote: > > > > These drivers allow mapping arbitrary memory ranges as MTD devices. > > This should be disabled to preserve the kernel's integrity when it is > > locked down. > > > > * Add the HWPARAM flag to the module parameters > > * When slram is built-in, it uses __setup() to read kernel parameters, > > so add an explicit check security_locked_down() check > > > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > > Cc: Matthew Garrett <mjg59@google.com> > > Cc: David Howells <dhowells@redhat.com> > > Cc: Joern Engel <joern@lazybastard.org> > > Cc: linux-mtd@lists.infradead.org > > Reviewed-by: Matthew Garrett <mjg59@google.com> > > James, should I pick patches like this up and send them to you, or > will you queue them directly after they're acked? As long as I'm on the to or cc when they're acked, I can grab them.
On Tue, Sep 10, 2019 at 5:17 PM James Morris <jmorris@namei.org> wrote: > > On Tue, 10 Sep 2019, Matthew Garrett wrote: > > > On Fri, Aug 30, 2019 at 11:47 AM Ben Hutchings <ben@decadent.org.uk> wrote: > > > > > > These drivers allow mapping arbitrary memory ranges as MTD devices. > > > This should be disabled to preserve the kernel's integrity when it is > > > locked down. > > > > > > * Add the HWPARAM flag to the module parameters > > > * When slram is built-in, it uses __setup() to read kernel parameters, > > > so add an explicit check security_locked_down() check > > > > > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > > > Cc: Matthew Garrett <mjg59@google.com> > > > Cc: David Howells <dhowells@redhat.com> > > > Cc: Joern Engel <joern@lazybastard.org> > > > Cc: linux-mtd@lists.infradead.org > > > > Reviewed-by: Matthew Garrett <mjg59@google.com> > > > > James, should I pick patches like this up and send them to you, or > > will you queue them directly after they're acked? > > As long as I'm on the to or cc when they're acked, I can grab them. Acked-by: Richard Weinberger <richard@nod.at> BTW: I don't have 1/2 in my inbox, is it also MTD related?
On Wed, 2019-09-11 at 00:18 +0200, Richard Weinberger wrote: > On Tue, Sep 10, 2019 at 5:17 PM James Morris <jmorris@namei.org> wrote: > > On Tue, 10 Sep 2019, Matthew Garrett wrote: > > > > > On Fri, Aug 30, 2019 at 11:47 AM Ben Hutchings <ben@decadent.org.uk> wrote: > > > > These drivers allow mapping arbitrary memory ranges as MTD devices. > > > > This should be disabled to preserve the kernel's integrity when it is > > > > locked down. > > > > > > > > * Add the HWPARAM flag to the module parameters > > > > * When slram is built-in, it uses __setup() to read kernel parameters, > > > > so add an explicit check security_locked_down() check > > > > > > > > Signed-off-by: Ben Hutchings <ben@decadent.org.uk> > > > > Cc: Matthew Garrett <mjg59@google.com> > > > > Cc: David Howells <dhowells@redhat.com> > > > > Cc: Joern Engel <joern@lazybastard.org> > > > > Cc: linux-mtd@lists.infradead.org > > > > > > Reviewed-by: Matthew Garrett <mjg59@google.com> > > > > > > James, should I pick patches like this up and send them to you, or > > > will you queue them directly after they're acked? > > > > As long as I'm on the to or cc when they're acked, I can grab them. > > Acked-by: Richard Weinberger <richard@nod.at> > > BTW: I don't have 1/2 in my inbox, is it also MTD related? No, that was for some other drivers (comedi) that allow setting I/O addresses from user-space. Ben.
diff --git a/drivers/mtd/devices/phram.c b/drivers/mtd/devices/phram.c index c467286ca007..9c18b4bb2ed9 100644 --- a/drivers/mtd/devices/phram.c +++ b/drivers/mtd/devices/phram.c @@ -294,7 +294,11 @@ static int phram_param_call(const char *val, const struct kernel_param *kp) #endif } -module_param_call(phram, phram_param_call, NULL, NULL, 000); +static const struct kernel_param_ops phram_param_ops = { + .set = phram_param_call +}; +__module_param_call(MODULE_PARAM_PREFIX, phram, &phram_param_ops, NULL, + 000, -1, KERNEL_PARAM_FL_HWPARAM | hwparam_iomem); MODULE_PARM_DESC(phram, "Memory region to map. \"phram=<name>,<start>,<length>\""); diff --git a/drivers/mtd/devices/slram.c b/drivers/mtd/devices/slram.c index 28131a127d06..d92a2461e2ce 100644 --- a/drivers/mtd/devices/slram.c +++ b/drivers/mtd/devices/slram.c @@ -43,6 +43,7 @@ #include <linux/ioctl.h> #include <linux/init.h> #include <linux/io.h> +#include <linux/security.h> #include <linux/mtd/mtd.h> @@ -65,7 +66,7 @@ typedef struct slram_mtd_list { #ifdef MODULE static char *map[SLRAM_MAX_DEVICES_PARAMS]; -module_param_array(map, charp, NULL, 0); +module_param_hw_array(map, charp, iomem, NULL, 0); MODULE_PARM_DESC(map, "List of memory regions to map. \"map=<name>, <start>, <length / end>\""); #else static char *map; @@ -281,11 +282,17 @@ static int __init init_slram(void) #ifndef MODULE char *devstart; char *devlength; + int ret; if (!map) { E("slram: not enough parameters.\n"); return(-EINVAL); } + + ret = security_locked_down(LOCKDOWN_MODULE_PARAMETERS); + if (ret) + return ret; + while (map) { devname = devstart = devlength = NULL;
These drivers allow mapping arbitrary memory ranges as MTD devices. This should be disabled to preserve the kernel's integrity when it is locked down. * Add the HWPARAM flag to the module parameters * When slram is built-in, it uses __setup() to read kernel parameters, so add an explicit check security_locked_down() check Signed-off-by: Ben Hutchings <ben@decadent.org.uk> Cc: Matthew Garrett <mjg59@google.com> Cc: David Howells <dhowells@redhat.com> Cc: Joern Engel <joern@lazybastard.org> Cc: linux-mtd@lists.infradead.org --- drivers/mtd/devices/phram.c | 6 +++++- drivers/mtd/devices/slram.c | 9 ++++++++- 2 files changed, 13 insertions(+), 2 deletions(-)