UBUNTU: SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking
authorKees Cook <kees@ubuntu.com>
Tue, 11 Jan 2011 23:54:17 +0000 (15:54 -0800)
committerLeann Ogasawara <leann.ogasawara@canonical.com>
Mon, 28 Mar 2011 13:52:49 +0000 (06:52 -0700)
Making /proc/kallsyms readable only for root makes it harder
for attackers to write generic kernel exploits by removing
one source of knowledge where things are in the kernel.

This is the second submit, discussion happened on this on first submit
and mostly concerned that this is just one hole of the sieve ... but
one of the bigger ones.

Changing the permissions of at least System.map and vmlinux is
also required to fix the same set, but a packaging issue.

Target of this starter patch and follow ups is removing any kind of
kernel space address information leak from the kernel.

Ciao, Marcus

[not upstream because some old sysklog daemons have a bug with this]

OriginalAuthor: Marcus Meissner <meissner@suse.de>

Signed-off-by: Marcus Meissner <meissner@suse.de>
Acked-by: Tejun Heo <tj@kernel.org>
Acked-by: Eugene Teo <eugeneteo@kernel.org>
Reviewed-by: Jesper Juhl <jj@chaosbits.net>
Signed-off-by: Kees Cook <kees.cook@canonical.com>
Signed-off-by: Tim Gardner <tim.gardner@canonical.com>

kernel/kallsyms.c

index 6f6d091..a8db257 100644 (file)
@@ -546,7 +546,7 @@ static const struct file_operations kallsyms_operations = {
 
 static int __init kallsyms_init(void)
 {
-       proc_create("kallsyms", 0444, NULL, &kallsyms_operations);
+       proc_create("kallsyms", 0400, NULL, &kallsyms_operations);
        return 0;
 }
 device_initcall(kallsyms_init);