summaryrefslogtreecommitdiffstats
path: root/x86-Lock-down-IO-port-access-when-module-security-is.patch
diff options
context:
space:
mode:
authorJustin M. Forbes <jforbes@redhat.com>2016-12-14 12:50:48 -0600
committerJustin M. Forbes <jforbes@redhat.com>2016-12-14 12:50:48 -0600
commit962ea4f047b3b4b4360446be4289c4e4deb29551 (patch)
tree0a13142b9219114c8902cac2b45fe9c7abc96897 /x86-Lock-down-IO-port-access-when-module-security-is.patch
parentb31b0fb7f4d47143f49fdbc50e7c0da678c0540b (diff)
downloadkernel-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.patch72
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
-