Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 230721 Details for
Bug 284746
sys-kernel/hardened-sources-2.6.32 bump
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
2.6.28 mmap_min_addr patch
1529_use-mmap_min_addr-indepedently-of-security-models.patch (text/plain), 5.63 KB, created by
kfm
on 2010-05-07 18:50:25 UTC
(
hide
)
Description:
2.6.28 mmap_min_addr patch
Filename:
MIME Type:
Creator:
kfm
Created:
2010-05-07 18:50:25 UTC
Size:
5.63 KB
patch
obsolete
>Backported to 2.6.28 by Kerin Millar <kerframil@gmail.com. >--- > >From: Christoph Lameter <cl@linux-foundation.org> >Date: Wed, 3 Jun 2009 20:04:31 +0000 (-0400) >Subject: security: use mmap_min_addr indepedently of security models >X-Git-Tag: v2.6.31-rc1~395^2^2~6 >X-Git-Url: http://git.kernel.org/?p=linux%2Fkernel%2Fgit%2Ftorvalds%2Flinux-2.6.git;a=commitdiff_plain;h=e0a94c2a6 > >security: use mmap_min_addr indepedently of security models > >This patch removes the dependency of mmap_min_addr on CONFIG_SECURITY. >It also sets a default mmap_min_addr of 4096. > >mmapping of addresses below 4096 will only be possible for processes >with CAP_SYS_RAWIO. > >Signed-off-by: Christoph Lameter <cl@linux-foundation.org> >Acked-by: Eric Paris <eparis@redhat.com> >Looks-ok-by: Linus Torvalds <torvalds@linux-foundation.org> >Signed-off-by: James Morris <jmorris@namei.org> >--- > >diff -urp a/include/linux/mm.h b/include/linux/mm.h >--- a/include/linux/mm.h 2009-07-24 21:37:08.799857560 +0100 >+++ b/include/linux/mm.h 2009-07-24 23:13:59.262857283 +0100 >@@ -571,12 +571,10 @@ static inline void set_page_links(struct > */ > static inline unsigned long round_hint_to_min(unsigned long hint) > { >-#ifdef CONFIG_SECURITY > hint &= PAGE_MASK; > if (((void *)hint != NULL) && > (hint < mmap_min_addr)) > return PAGE_ALIGN(mmap_min_addr); >-#endif > return hint; > } > >diff -urp a/include/linux/security.h b/include/linux/security.h >--- a/include/linux/security.h 2008-12-24 23:26:37.000000000 +0000 >+++ b/include/linux/security.h 2009-07-24 23:13:59.262857283 +0100 >@@ -2139,6 +2139,8 @@ static inline int security_file_mmap(str > unsigned long addr, > unsigned long addr_only) > { >+ if ((addr < mmap_min_addr) && !capable(CAP_SYS_RAWIO)) >+ return -EACCES; > return 0; > } > >diff -urp a/kernel/sysctl.c b/kernel/sysctl.c >--- a/kernel/sysctl.c 2009-07-24 21:37:06.642857660 +0100 >+++ b/kernel/sysctl.c 2009-07-24 23:13:59.274857385 +0100 >@@ -1138,7 +1138,6 @@ static struct ctl_table vm_table[] = { > .strategy = &sysctl_jiffies, > }, > #endif >-#ifdef CONFIG_SECURITY > { > .ctl_name = CTL_UNNUMBERED, > .procname = "mmap_min_addr", >@@ -1147,7 +1146,6 @@ static struct ctl_table vm_table[] = { > .mode = 0644, > .proc_handler = &proc_doulongvec_minmax, > }, >-#endif > #ifdef CONFIG_NUMA > { > .ctl_name = CTL_UNNUMBERED, >diff -urp a/mm/Kconfig b/mm/Kconfig >--- a/mm/Kconfig 2008-12-24 23:26:37.000000000 +0000 >+++ b/mm/Kconfig 2009-07-24 23:15:16.784588221 +0100 >@@ -222,3 +222,22 @@ config UNEVICTABLE_LRU > > config MMU_NOTIFIER > bool >+ >+config DEFAULT_MMAP_MIN_ADDR >+ int "Low address space to protect from user allocation" >+ default 4096 >+ help >+ This is the portion of low virtual memory which should be protected >+ from userspace allocation. Keeping a user from writing to low pages >+ can help reduce the impact of kernel NULL pointer bugs. >+ >+ For most ia64, ppc64 and x86 users with lots of address space >+ a value of 65536 is reasonable and should cause no problems. >+ On arm and other archs it should not be higher than 32768. >+ Programs which use vm86 functionality would either need additional >+ permissions from either the LSM or the capabilities module or have >+ this protection disabled. >+ >+ This value can be changed after boot using the >+ /proc/sys/vm/mmap_min_addr tunable. >+ >diff -urp a/mm/mmap.c b/mm/mmap.c >--- a/mm/mmap.c 2009-07-24 21:37:09.510857650 +0100 >+++ b/mm/mmap.c 2009-07-24 23:13:59.283857547 +0100 >@@ -86,6 +86,9 @@ int sysctl_overcommit_ratio = 50; /* def > int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT; > atomic_long_t vm_committed_space = ATOMIC_LONG_INIT(0); > >+/* amount of vm to protect from userspace access */ >+unsigned long mmap_min_addr = CONFIG_DEFAULT_MMAP_MIN_ADDR; >+ > /* > * Check that a process has enough memory to allocate a new virtual > * mapping. 0 means there is enough memory for the allocation to >diff -urp a/security/Kconfig b/security/Kconfig >--- a/security/Kconfig 2008-12-24 23:26:37.000000000 +0000 >+++ b/security/Kconfig 2009-07-24 23:13:59.287857521 +0100 >@@ -100,28 +100,8 @@ config SECURITY_ROOTPLUG > > See <http://www.linuxjournal.com/article.php?sid=6279> for > more information about this module. >- >- If you are unsure how to answer this question, answer N. >- >-config SECURITY_DEFAULT_MMAP_MIN_ADDR >- int "Low address space to protect from user allocation" >- depends on SECURITY >- default 0 >- help >- This is the portion of low virtual memory which should be protected >- from userspace allocation. Keeping a user from writing to low pages >- can help reduce the impact of kernel NULL pointer bugs. >- >- For most ia64, ppc64 and x86 users with lots of address space >- a value of 65536 is reasonable and should cause no problems. >- On arm and other archs it should not be higher than 32768. >- Programs which use vm86 functionality would either need additional >- permissions from either the LSM or the capabilities module or have >- this protection disabled. >- >- This value can be changed after boot using the >- /proc/sys/vm/mmap_min_addr tunable. > >+ If you are unsure how to answer this question, answer N. > > source security/selinux/Kconfig > source security/smack/Kconfig >diff -urp a/security/security.c b/security/security.c >--- a/security/security.c 2008-12-24 23:26:37.000000000 +0000 >+++ b/security/security.c 2009-07-24 23:13:59.291857543 +0100 >@@ -26,9 +26,6 @@ extern void security_fixup_ops(struct se > > struct security_operations *security_ops; /* Initialized to NULL */ > >-/* amount of vm to protect from userspace access */ >-unsigned long mmap_min_addr = CONFIG_SECURITY_DEFAULT_MMAP_MIN_ADDR; >- > static inline int verify(struct security_operations *ops) > { > /* verify the security_operations structure exists */
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 284746
:
230185
|
230187
| 230721 |
230723