diff mbox

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

Message ID 20110111235417.GN4979@outflux.net
State Accepted
Delegated to: Tim Gardner
Headers show

Commit Message

Kees Cook Jan. 11, 2011, 11:54 p.m. UTC
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(-)

Comments

Tim Gardner Jan. 12, 2011, 8:55 p.m. UTC | #1
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. UTC | #2
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
diff mbox

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);