x86: introduce /dev/mem restrictions with a config option
authorArjan van de Ven <arjan@linux.intel.com>
Thu, 24 Apr 2008 21:40:47 +0000 (23:40 +0200)
committerIngo Molnar <mingo@elte.hu>
Thu, 24 Apr 2008 21:40:47 +0000 (23:40 +0200)
commitae531c26c5c2a28ca1b35a75b39b3b256850f2c8
treee4c2f3ec25bdb0e2e5f7f15f79a60c3175f03718
parent94bc891b00e40cbec375feb4568780af183fd7f4
x86: introduce /dev/mem restrictions with a config option

This patch introduces a restriction on /dev/mem: Only non-memory can be
read or written unless the newly introduced config option is set.

The X server needs access to /dev/mem for the PCI space, but it doesn't need
access to memory; both the file permissions and SELinux permissions of /dev/mem
just make X effectively super-super powerful. With the exception of the
BIOS area, there's just no valid app that uses /dev/mem on actual memory.
Other popular users of /dev/mem are rootkits and the like.
(note: mmap access of memory via /dev/mem was already not allowed since
a really long time)

People who want to use /dev/mem for kernel debugging can enable the config
option.

The restrictions of this patch have been in the Fedora and RHEL kernels for
at least 4 years without any problems.

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
arch/x86/Kconfig.debug
arch/x86/mm/init_32.c
arch/x86/mm/init_64.c
drivers/char/mem.c
include/asm-x86/page.h