On Thu, Jan 12, 2012 at 10:32 AM, Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote: > On Thu, Jan 12, 2012 at 10:18 AM, Andrew Lutomirski <luto@xxxxxxx> wrote: >> >> Like this? >> >> http://lkml.indiana.edu/hypermail/linux/kernel/1003.3/01225.html > > I don't know the execve_nosecurity patches, so the diff makes little > sense to me, but yeah, I wouldn't expect it to be more than a couple > of lines. Exactly *how* you set the bit etc is not something I care > deeply about, prctl seems about as good as anything. > >> Note that there's a huge can of worms if execve is allowed but >> suid/sgid is not: selinux may elevate privileges on exec of pretty >> much anything. (I think that this is a really awful idea, but it's in >> the kernel, so we're stuck with it.) > > You can do any amount of crazy things with selinux, but the other side > of the coin is that it would also be trivial to teach selinux about > this same "restricted environment" bit, and just say that a process > with that bit set doesn't get to match whatever selinux privilege > escalation rules.. > > I really don't think this is just about "execve cannot do setuid". I > think it's about the process being marked as restricted. > > So in your patch, I think that "PR_RESTRICT_EXEC" bit is wrong. It > should simply be "PR_RESTRICT_ME", and be done with it, and not try to > artificially limit it to be some "execve feature", and more think of > it as a "this is a process that has *no* extra privileges at all, and > can never get them". Fair enough. I'll submit the simpler patch tonight. execve_nosecurity was my attempt to sidestep selinux issues. It's a different syscall that does all of the non-security-related things that execve does but does not escalate (or even change) any privileges. Maybe I'll try to rework that for newer kernels as well. The idea is that programs that expect to run in sandboxes / chroots / namespaces / whatever can use it, and older programs that might malfunction dangerously if the semantics of execve change will just fail instead. --Andy -- 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