ASLR and Stack Gap != 0
Konstantin Belousov
kostikbel at gmail.com
Sat Oct 26 17:32:08 UTC 2019
On Sat, Oct 26, 2019 at 10:28:07AM -0700, Cy Schubert wrote:
> Let's try this again. This time with a subject line.
>
> Hi,
>
> The following little test case segfaults when aslr is enabled:
>
> #include <stdio.h>
> #include <sys/types.h>
> #include <sys/time.h>
> #include <sys/resource.h>
>
> int
> main(int argc, char *argv[])
> {
> struct rlimit rl;
> int rc;
>
> rl.rlim_cur = 50 * 4096;
> rl.rlim_max = 50 * 4096;
> rc = setrlimit(RLIMIT_STACK, &rl);
>
> return(rc);
> }
>
>
> slippy# sysctl kern.elf64.aslr.enable=1
> kern.elf64.aslr.enable: 0 -> 1
> slippy# ./test
> Segmentation fault (core dumped)
> slippy# gdb test
> GNU gdb (GDB) 8.3.1 [GDB v8.3.1 for FreeBSD]
> Copyright (C) 2019 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html
> >
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> Type "show copying" and "show warranty" for details.
> This GDB was configured as "x86_64-portbld-freebsd13.0".
> Type "show configuration" for configuration details.
> For bug reporting instructions, please see:
> <http://www.gnu.org/software/gdb/bugs/>.
> Find the GDB manual and other documentation resources online at:
> <http://www.gnu.org/software/gdb/documentation/>.
>
> For help, type "help".
> Type "apropos word" to search for commands related to "word"...
> Reading symbols from test...
> (gdb) run
> Starting program: /export/home/cy/freebsd/tests/setrlimit/test
>
> Program received signal SIGSEGV, Segmentation fault.
> setrlimit () at setrlimit.S:4
> 4 setrlimit.S: No such file or directory.
> (gdb) bt
> #0 setrlimit () at setrlimit.S:4
> Backtrace stopped: Cannot access memory at address 0x7fffffe372e8
> (gdb)
>
>
> It only occurs with aslr enabled and stack gap != 0. This isn't right.
>
I already explained this, also you might find this written down one
more time at
https://github.com/freebsd/freebsd-quarterly/blob/master/2019q3/stack_gap.md
More information about the freebsd-hackers
mailing list