From: Eric W. Biederman
Date: Tue Oct 03 2017 - 15:06:30 EST

JÃrg Billeter <j@xxxxxxxxx> writes:

> On Tue, 2017-10-03 at 12:40 -0500, Eric W. Biederman wrote:
>> JÃrg Billeter <j@xxxxxxxxx> writes:
>> > What's actually the reason that CLONE_NEWPID requires CAP_SYS_ADMIN?
>> > Does CLONE_NEWPID pose any risks that don't exist for
>> > CLONE_NEWUSER|CLONE_NEWPID? Assuming we can't simply drop the
>> > CAP_SYS_ADMIN requirement, do you see a better solution for this use
>> > case?
>> CLONE_NEWPID without a permission check would allow runing a setuid root
>> application in a pid namespace. Off the top of my head I can't think of
>> a really good exploit. But when you mess up pid files, and hide
>> information from a privileged application I can completely imagine
>> forcing that application to misbehave in ways the attacker can control.
>> Leading to bad things.
> Could we allow unprivileged CLONE_NEWPID if the no_new_privs bit is
> set?

We discussed this early on, and the decision was that no_new_privs would
be kept simple and the user namespace would be what enabled additional

Given how much of a challenge dealing with the additional attack surface
of enabling additional functionality in the kernel I think that was the
right call. That has been the difference between no_new_privs being
done and user namespaces interesting since they have been merged.