From: Eric Paris Date: Mon, 26 Nov 2007 23:47:46 +0000 (-0500) Subject: Security: allow capable check to permit mmap or low vm space X-Git-Tag: v2.6.24-rc5~63^2~3 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ab5a91a8364c3d6fc617abc47cc81d162c01d90a;p=linux-2.6 Security: allow capable check to permit mmap or low vm space On a kernel with CONFIG_SECURITY but without an LSM which implements security_file_mmap it is impossible for an application to mmap addresses lower than mmap_min_addr. Based on a suggestion from a developer in the openwall community this patch adds a check for CAP_SYS_RAWIO. It is assumed that any process with this capability can harm the system a lot more easily than writing some stuff on the zero page and then trying to get the kernel to trip over itself. It also means that programs like X on i686 which use vm86 emulation can work even with mmap_min_addr set. Signed-off-by: Eric Paris Signed-off-by: James Morris --- diff --git a/security/dummy.c b/security/dummy.c index 6d895ade73..3ccfbbe973 100644 --- a/security/dummy.c +++ b/security/dummy.c @@ -426,7 +426,7 @@ static int dummy_file_mmap (struct file *file, unsigned long reqprot, unsigned long addr, unsigned long addr_only) { - if (addr < mmap_min_addr) + if ((addr < mmap_min_addr) && !capable(CAP_SYS_RAWIO)) return -EACCES; return 0; }