On Fri, 3 Feb 2012, Christoph Anton Mitterer <cales...@scientia.net> wrote: > Wasn't it once the case with PaX that packages have to be compiled > specially? Or some ELF headers added or so?
Some shared libraries have code which can't be run without an executable stack, it's a small number of libraries that are written in assembler code. We want to allow running them but don't want to give all programs permission to execute code on the stack. From memory the GR Security option for this was to flag the rare executables that want an executable stack and are permitted to have it. The solution devised by libc/gcc upstream was to have a special assembly section in every shared object that doesn't require an executable stack and if an executable only loads shared objects that don't require it then the executable stack is disabled. Then we have SE Linux policy to prevent most programs from having an executable stack which means that if they are tricked into loading some of the rare libraries that need it then it doesn't do anything bad. The downside to the latter approach is that lots of shared objects which have some assembler code needed to be patched. The PaX approach involved less work. -- My Main Blog http://etbe.coker.com.au/ My Documents Blog http://doc.coker.com.au/ -- To UNSUBSCRIBE, email to debian-kernel-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/201202031215.27866.russ...@coker.com.au