Re: -fstack-check vs -fstack-clash-protection

Thomas Klausner <[email protected]>
Newsgroups gmane.os.netbsd.devel.packages,gmane.os.netbsd.devel.toolchain
Message-ID <[email protected]>
On Sat, Jul 30, 2022 at 12:20:53PM +1200, Lloyd Parkes wrote:
> I had a bit of read of our documentation and the NetBSD documentation.
> 
> The name PKGSRC_USE_STACK_CHECK, the option -fstack-check, the usage of
> PKGSRC_USE_STACK_CHECK in pksgrc and all the various bits of documentation
> seem to line up fairly well. I don't think it's worth changing any of it. We
> risk having inconsistent documentation if we don't find all the references.
> 
> I can see value in adding a new pkgsrc setting. I'm not in love with the
> length of the name PKGSRC_USE_STACK_CLASH_PROTECTION but maybe we could have
> PKGSRC_PROTECT_STACK_CLASH? Then we would just need to add a section B.1.2.3
> to https://www.netbsd.org/docs/pkgsrc/hardening.html and call the
> documentation done.

The -fstack-check and -fstack-clash-protection flags conflict (sorry,
didn't mention that), so perhaps we add a new value to the existing
variable, e.g.

PKGSRC_USE_STACK_CHECK=clash-protection

?

> I don't know what GCC means by "fully support stack clash protection", but
> the original discoverers of the stack clash attack think that NetBSD is
> protected from it as well as anyone else is. I can see that my NetSBD/amd64
> 9.2_STABLE system says "vm.guard_size = 1048576", so that's good. It may
> well be that "[m]ost targets" simply acknowledges the very many strange and
> wonderful targets that GCC has.

Thanks for clarifying that!
 Thomas



> Cheers,
> Lloyd
> 
> On 24/07/22 05:20, Thomas Klausner wrote:
> > Hi!
> > 
> > pkgsrc's PKGSRC_USE_STACK_CHECK setting adds -fstack-check to the
> > compiler flags.
> > 
> > Corresponding about a build failure with an upstream, it was pointed
> > out to me that even the gcc man page documents this as:
> > 
> >            -fstack-check= is designed for Ada's needs to detect
> >             infinite recursion and stack overflows.  specific is an
> >             excellent choice when compiling Ada code.  It is not
> >             generally sufficient to protect against stack-clash
> >             attacks.  To protect against those you want
> >             -fstack-clash-protection.
> > 
> > The documentation for that says:
> > 
> >             Most targets do not fully support stack clash protection.
> > 
> > Does anyone know the state of -fstack-clash-protection on NetBSD?
> > 
> > Should we switch from -fstack-check to -fstack-clash-protection in
> > pkgsrc, when PKGSRC_USE_STACK_CHECK is set?
> > 
> > Cheers,
> >   Thomas
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.