On Wed, Jul 18, 2012 at 10:21:04PM -0600, Theo de Raadt wrote:
I guess you are talking about mitigation mechanisms.
I am not aware of any stdio protection mechanisms.
well, apart from careful handling of file descriptors everywhere to
make sure fd 0, 1 and 2 remain what they are supposed to be.
-Otto
However, our atexit has a bizzare quirk, as does our malloc.
These functions protect their own internal data structures by
mprotect()'ing them as non-writeable after updating them.
It isn't worth mentioning in a manual page. But if you dug into
the source code, and the commit logs, you'd see this cleverness in
action.
It slows malloc down a little bit, but it makes it a lot harder to
attack the back-end.
I'm trying to dig up information on the atexit() and stdio()
protection given in the FAQ. I can find lots of statements that this
protection exists, but I can't find any presentations or papers saying
what they are and what they do. The man pages for these functions
don't seem to have anything explicit about this protection.
Any pointers? Man pages I should read?
Thanks,
==ml
--
Michael W. Lucas
http://www.MichaelWLucas.com/, http://blather.MichaelWLucas.com/
Latest book: SSH Mastery http://www.michaelwlucas.com/nonfiction/ssh-mastery
mwlu...@michaelwlucas.com, Twitter @mwlauthor