Port-amd64 archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

HEADS-UP: Stack Smash Protection enabled by default for amd64 and i386



        Hello,

I've just enabled Stack Smash Protection by default for NetBSD/amd64
and NetBSD/i386 in current. As a result kernels and userland will be
build with "-fstack-protector" and eventually also "-Wstack-protector".
I've tested full release builds of both ports on a NetBSD/i386 machine
which uses SSP userland and kernel.

SSP will result in a slowdown of about 5%, please read this thread
for more details:

        http://mail-index.netbsd.org/port-i386/2009/10/18/msg001465.html

You can still build NetBSD/amd64 and NetBSD/i386 with SSP turned off
by adding "USE_SSP=no" to "/etc/mk.conf" or by using the command line
argument "-V USE_SSP=no" when invoking "build.sh".

There is a risk that SSP causes application crashes or even
kernel panics in buggy code. Here is a simple example:

tron@lyssa:~>cat ssp.c 

#include <stdio.h>
#include <stdlib.h>

static void
broken(void)
{
        char a[5];

        a[5] = 'E';
}

int
main(int argc, char **argv)
{
        broken();
        (void)puts("I survived");

        return EXIT_SUCCESS;
}
tron@lyssa:~>gcc ssp.c -Wall -o ssp
tron@lyssa:~>./ssp
I survived
zsh: segmentation fault  ./ssp
tron@lyssa:~>gcc ssp.c -fstack-protector --param ssp-buffer-size=1 -Wall -o ssp
tron@lyssa:~>./ssp
zsh: abort      ./ssp
tron@lyssa:~>tail -1 /var/log/messages
Nov 11 16:49:04 ssp -: stack overflow detected; terminated

As you can see the stack overflow was detected in the second case but not
the first one (which instead lead to a crash later). Although I'm using
SSP for a long time (including my NetBSD 5.0_STABLE server) it is
possible that are bugs in code which I'm not using (e.g. drivers for
hardware that I don't own) which will now cause problems. Please report
such problems with "send-pr".

        Kind regards

-- 
Matthias Scheler                                  http://zhadum.org.uk/

Attachment: pgp_lt5Agmkgj.pgp
Description: PGP signature



Home | Main Index | Thread Index | Old Index