diff options
author | Justin M. Forbes <jforbes@redhat.com> | 2016-12-14 12:50:48 -0600 |
---|---|---|
committer | Justin M. Forbes <jforbes@redhat.com> | 2016-12-14 12:50:48 -0600 |
commit | 962ea4f047b3b4b4360446be4289c4e4deb29551 (patch) | |
tree | 0a13142b9219114c8902cac2b45fe9c7abc96897 /x86-Lock-down-IO-port-access-when-module-security-is.patch | |
parent | b31b0fb7f4d47143f49fdbc50e7c0da678c0540b (diff) | |
download | kernel-962ea4f047b3b4b4360446be4289c4e4deb29551.tar.gz kernel-962ea4f047b3b4b4360446be4289c4e4deb29551.tar.xz kernel-962ea4f047b3b4b4360446be4289c4e4deb29551.zip |
Linux v4.9-7150-gcdb98c2
Diffstat (limited to 'x86-Lock-down-IO-port-access-when-module-security-is.patch')
-rw-r--r-- | x86-Lock-down-IO-port-access-when-module-security-is.patch | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/x86-Lock-down-IO-port-access-when-module-security-is.patch b/x86-Lock-down-IO-port-access-when-module-security-is.patch deleted file mode 100644 index 3bb42bb45..000000000 --- a/x86-Lock-down-IO-port-access-when-module-security-is.patch +++ /dev/null @@ -1,72 +0,0 @@ -From e7817a96c7ef1b502dba6f70b75f9e8993a8750b Mon Sep 17 00:00:00 2001 -From: Matthew Garrett <matthew.garrett@nebula.com> -Date: Thu, 8 Mar 2012 10:35:59 -0500 -Subject: [PATCH 03/20] x86: Lock down IO port access when module security is - enabled - -IO port access would permit users to gain access to PCI configuration -registers, which in turn (on a lot of hardware) give access to MMIO register -space. This would potentially permit root to trigger arbitrary DMA, so lock -it down by default. - -Signed-off-by: Matthew Garrett <matthew.garrett@nebula.com> ---- - arch/x86/kernel/ioport.c | 5 +++-- - drivers/char/mem.c | 4 ++++ - 2 files changed, 7 insertions(+), 2 deletions(-) - -diff --git a/arch/x86/kernel/ioport.c b/arch/x86/kernel/ioport.c -index 589b3193f102..ab8372443efb 100644 ---- a/arch/x86/kernel/ioport.c -+++ b/arch/x86/kernel/ioport.c -@@ -15,6 +15,7 @@ - #include <linux/thread_info.h> - #include <linux/syscalls.h> - #include <linux/bitmap.h> -+#include <linux/module.h> - #include <asm/syscalls.h> - - /* -@@ -28,7 +29,7 @@ asmlinkage long sys_ioperm(unsigned long from, unsigned long num, int turn_on) - - if ((from + num <= from) || (from + num > IO_BITMAP_BITS)) - return -EINVAL; -- if (turn_on && !capable(CAP_SYS_RAWIO)) -+ if (turn_on && (!capable(CAP_SYS_RAWIO) || secure_modules())) - return -EPERM; - - /* -@@ -108,7 +109,7 @@ SYSCALL_DEFINE1(iopl, unsigned int, level) - return -EINVAL; - /* Trying to gain more privileges? */ - if (level > old) { -- if (!capable(CAP_SYS_RAWIO)) -+ if (!capable(CAP_SYS_RAWIO) || secure_modules()) - return -EPERM; - } - regs->flags = (regs->flags & ~X86_EFLAGS_IOPL) | -diff --git a/drivers/char/mem.c b/drivers/char/mem.c -index 5bb1985ec484..7f1a7ab5850d 100644 ---- a/drivers/char/mem.c -+++ b/drivers/char/mem.c -@@ -28,6 +28,7 @@ - #include <linux/export.h> - #include <linux/io.h> - #include <linux/uio.h> -+#include <linux/module.h> - - #include <linux/uaccess.h> - -@@ -580,6 +581,9 @@ static ssize_t write_port(struct file *file, const char __user *buf, - unsigned long i = *ppos; - const char __user *tmp = buf; - -+ if (secure_modules()) -+ return -EPERM; -+ - if (!access_ok(VERIFY_READ, buf, count)) - return -EFAULT; - while (count-- > 0 && i < 65536) { --- -2.9.3 - |