First published: Thu Oct 21 2010(Updated: )
Description of problem: The CONFIG_STACK_GROWSDOWN variant of setup_arg_pages() does not check the size of the argument/environment area on the stack. When it is unworkably large, shift_arg_pages() hits its BUG_ON. This is exploitable with a very large RLIMIT_STACK limit, to create a crash pretty easily. Check that the initial stack is not too large to make it possible to map in any executable. We're not checking that the actual executable (or intepreter, for binfmt_elf) will fit. So those mappings might clobber part of the initial stack mapping. But that is just userland lossage that userland made happen, not a kernel problem. Upstream commit: <a href="http://git.kernel.org/linus/1b528181b2ffa14721fb28ad1bd539fe1732c583">http://git.kernel.org/linus/1b528181b2ffa14721fb28ad1bd539fe1732c583</a> Reference: <a href="http://grsecurity.net/~spender/64bit_dos.c">http://grsecurity.net/~spender/64bit_dos.c</a> Acknowledgements: Red Hat would like to thank Brad Spengler for reporting this issue.
Credit: secalert@redhat.com secalert@redhat.com
Affected Software | Affected Version | How to fix |
---|---|---|
Linux Linux kernel | <2.6.36 | |
Debian Debian Linux | =5.0 | |
Canonical Ubuntu Linux | =10.10 | |
Canonical Ubuntu Linux | =9.10 | |
Canonical Ubuntu Linux | =10.04 | |
debian/linux-2.6 |
Sign up to SecAlerts for real-time vulnerability data matched to your software, aggregated from hundreds of sources.