Re: [patch] remove MNT_NOEXEC check for PROT_EXEC mmaps
From: Kyle Moffett
Date: Sun Sep 24 2006 - 15:44:19 EST
On Sep 24, 2006, at 15:14:02, David Wagner wrote:
Stas Sergeev wrote:
Ulrich Drepper wrote:
The consensus has been to add the same checks to mprotect. They
not left out intentionally.
But how about the anonymous mmap with PROT_EXEC set?
I'm curious about this, too. ld-linux.so is a purely unprivileged
program. It isn't setuid root. Can you write a variant of ld-
that reads an executable into memory off of a partition mounted
then begins executing that code? (perhaps by using anonymous mmap
PROT_EXEC or some other mechanism) It sure seems like the answer would
be yes. If so, I'm having a hard time understanding what guarantees
noexec gives you. Isn't the noexec flag just a speedbump that raises
the bar a little but doesn't really prevent anything?
I seem to recall somewhere that it was possible to prevent anonymous
memory from being mapped PROT_EXEC during or after being mapped
PROT_WRITE; and that in fact your average SELinux-enabled system had
such protections for everything but the Java binary and a few other
odd programs. If you can't ever execute any data blobs except those
that came directly from a properly-secured SELinux-enabled filesystem
it makes exploiting a server significantly harder.
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/