On Thu, 2012-01-12 at 17:30 +0000, Jamie Lokier wrote: > You can do this now, using ptrace(). It's horrible, but half of the > horribleness is needing to understand machine-dependent registers, > which this new patch doesn't address. (The other half is a ton of > undocumented but important ptrace() behaviours on Linux.) Yeah I know the horrid use of ptrace, I've implemented programs that use it :-p I guess ptrace can capture the execv and determine if it is OK or not to run it. But again, this doesn't stop the possible attacks that could happen, with having the execv on a symlink file, having the ptrace check say its OK, and then switching the symlink to a setuid file. When the new execv executed, the parent process would lose all control over it. The idea is to prevent this. I like Alan's suggestion. Have userspace decide to allow execv or not, and even let it decide if it should allow setuid execv's or not, but still allow non-setuid execvs. If you allow the setuid execv, once that happens, the same behavior will occur as with ptrace. A setuid execv will lose all its filtering. -- Steve -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html