Patchwork UBUNTU: SAUCE: kernel: make /proc/kallsyms mode 400 to reduce ease of attacking

login
register
mail settings
Submitter Kees Cook
Date Jan. 11, 2011, 11:54 p.m.
Message ID <20110111235417.GN4979@outflux.net>
Download mbox | patch
Permalink /patch/78492/
State Accepted
Delegated to: Tim Gardner
Headers show

Comments

Kees Cook - Jan. 11, 2011, 11:54 p.m.
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>
---
 kernel/kallsyms.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)
Tim Gardner - Jan. 12, 2011, 8:55 p.m.
On 01/11/2011 05:54 PM, Kees Cook wrote:
> 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>
> ---
>   kernel/kallsyms.c |    2 +-
>   1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
> index 6f6d091..a8db257 100644
> --- a/kernel/kallsyms.c
> +++ b/kernel/kallsyms.c
> @@ -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);

Applied to Natty. I assume this was not intended for Maverick ?
Kees Cook - Jan. 12, 2011, 9:08 p.m.
On Wed, Jan 12, 2011 at 02:55:38PM -0600, Tim Gardner wrote:
> Applied to Natty. I assume this was not intended for Maverick ?

Right, yeah. Thanks!

-Kees

Patch

diff --git a/kernel/kallsyms.c b/kernel/kallsyms.c
index 6f6d091..a8db257 100644
--- a/kernel/kallsyms.c
+++ b/kernel/kallsyms.c
@@ -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);