Re: [PATCH] Add PR_{GET,SET}_NO_NEW_PRIVS to prevent execve fromgranting privs

From: Linus Torvalds
Date: Fri Jan 13 2012 - 14:13:00 EST


On Fri, Jan 13, 2012 at 11:00 AM, Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
>
> Changing it to fail the exec when a transition would occur will make
> seccomp considerably less useful to selinux users -- the presence of
> MAC policy on a program (regardless of what that policy is) will make
> it unusable inside a sandbox.

I don't agree. I think that's exactly what we want sandboxing for, to
avoid any kind of subtle security issues.

And in 99.99% of all sandboxes, you would never ever want to execute
something with a different MAC policy on it. In fact, most of the
whole point of the sandboxing tends to be to make sure that the user
stays inside the exact *small* environment that was provided just for
that thing.

So I bet the google chrome people are not at all interested in
"running random binaries", and might want execve() very much for
"running some specific binaries that we ship with or install from the
browser".

So I really think that the *only* valid model is the "fail the execve
on any changes", not the "mnt-nosuid" approach of trying to run things
with the wrong permissions and get perhaps odd results. And I think it
works even - and perhaps *especially* - in models like selinux or
apparmor that do have a lot of "implicit MAC knowledge" on specific
binaries.

Linus
--
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/