[PATCH] Undo some of the pseudo-security madness

From: Samium Gromoff
Date: Sat Jan 20 2007 - 10:11:30 EST



This patch removes the dropping of ADDR_NO_RANDOMIZE upon execution of setuid
binaries.

Why? The answer consists of two parts:

Firstly, there are valid applications which need an unadulterated memory map.
Some of those which do their memory management, like lisp systems (like SBCL).
They try to achieve this by setting ADDR_NO_RANDOMIZE and reexecuting themselves.

Secondly, there also are valid reasons to want those applications to be setuid
root. Like poking hardware.

So, here we have a buffer-overflow protection technique, which does not
actually protect against buffer overflows[1], breaking valid applications.

I suggest getting rid of it.

--- include/linux/personality.h 2007-01-20 17:31:01.000000000 +0300
+++ include/linux-sane/personality.h 2007-01-20 17:32:50.000000000 +0300
@@ -40,7 +40,7 @@
* Security-relevant compatibility flags that must be
* cleared upon setuid or setgid exec:
*/
-#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC|ADDR_NO_RANDOMIZE)
+#define PER_CLEAR_ON_SETID (READ_IMPLIES_EXEC)

/*
* Personality types.

Signed-off-by: Samium Gromoff <_deepfire@xxxxxxxxxxxxxxxxx>

[1]. See the excellent, 'Hackers Hut' by Andries Brouwer, which describes
how AS randomisation can be got around by the means of linux-gate.so.1
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/