aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric Paris <eparis@redhat.com>2008-01-31 15:11:22 -0500
committerJames Morris <jmorris@localhost.localdomain>2008-02-06 08:39:46 -0500
commita5ecbcb8c13ea8a822d243bf782d0dc9525b4f84 (patch)
tree902df830bf581642a49bbb1e4f4de5b9f80eeaa1
parent551e4fb2465b87de9d4aa1669b27d624435443bb (diff)
security: allow Kconfig to set default mmap_min_addr protection
Since it was decided that low memory protection from userspace couldn't be turned on by default add a Kconfig option to allow users/distros to set a default at compile time. This value is still tunable after boot in /proc/sys/vm/mmap_min_addr Discussion: http://www.mail-archive.com/linux-security-module@vger.kernel.org/msg02543.html Signed-off-by: Eric Paris <eparis@redhat.com> Signed-off-by: James Morris <jmorris@namei.org>
-rw-r--r--security/Kconfig18
-rw-r--r--security/security.c4
2 files changed, 21 insertions, 1 deletions
diff --git a/security/Kconfig b/security/Kconfig
index 25ffe1b9dc98..5dfc206748cf 100644
--- a/security/Kconfig
+++ b/security/Kconfig
@@ -104,6 +104,24 @@ config SECURITY_ROOTPLUG
104 104
105 If you are unsure how to answer this question, answer N. 105 If you are unsure how to answer this question, answer N.
106 106
107config SECURITY_DEFAULT_MMAP_MIN_ADDR
108 int "Low address space to protect from user allocation"
109 depends on SECURITY
110 default 0
111 help
112 This is the portion of low virtual memory which should be protected
113 from userspace allocation. Keeping a user from writing to low pages
114 can help reduce the impact of kernel NULL pointer bugs.
115
116 For most users with lots of address space a value of 65536 is
117 reasonable and should cause no problems. Programs which use vm86
118 functionality would either need additional permissions from either
119 the LSM or the capabilities module or have this protection disabled.
120
121 This value can be changed after boot using the
122 /proc/sys/vm/mmap_min_addr tunable.
123
124
107source security/selinux/Kconfig 125source security/selinux/Kconfig
108source security/smack/Kconfig 126source security/smack/Kconfig
109 127
diff --git a/security/security.c b/security/security.c
index b6c57a6b2ff5..d15e56cbaade 100644
--- a/security/security.c
+++ b/security/security.c
@@ -23,7 +23,9 @@ extern struct security_operations dummy_security_ops;
23extern void security_fixup_ops(struct security_operations *ops); 23extern void security_fixup_ops(struct security_operations *ops);
24 24
25struct security_operations *security_ops; /* Initialized to NULL */ 25struct security_operations *security_ops; /* Initialized to NULL */
26unsigned long mmap_min_addr; /* 0 means no protection */ 26
27/* amount of vm to protect from userspace access */
28unsigned long mmap_min_addr = CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR;
27 29
28static inline int verify(struct security_operations *ops) 30static inline int verify(struct security_operations *ops)
29{ 31{