Re: [kernel-hardening] Re: [PATCH 0/2] sysctl: allow CLONE_NEWUSER to be disabled

From: Austin S. Hemmelgarn
Date: Wed Jan 27 2016 - 07:33:05 EST


On 2016-01-27 05:27, Eric W. Biederman wrote:
Kees Cook <keescook@xxxxxxxxxxxx> writes:

On Tue, Jan 26, 2016 at 9:15 AM, Serge Hallyn <serge.hallyn@xxxxxxxxxx> wrote:
Quoting Josh Boyer (jwboyer@xxxxxxxxxxxxxxxxx):
What you're saying is true for the "oh crap" case of a new userns
related CVE being found. However, there is the case where sysadmins
know for a fact that a set of machines should not allow user
namespaces to be enabled. Currently they have 2 choices, 1) use their

Hi - can you give a specific example of this? (Where users really should
not be able to use them - not where they might not need them) I think
it'll help the discussion tremendously. Because so far the only good
arguments I've seen have been about actual bugs in the user namespaces,
which would not warrant a designed-in permanent disable switch. If
there are good use cases where such a disable switch will always be
needed (and compiling out can't satisfy) that'd be helpful.

My example is a machine in a colo rack serving web pages. A site gets
attacked, and www-data uses user namespaces to continue their attack
to gain root privileges.

The admin of such a machine could have disabled userns months earlier
and limited the scope of the attack.

Of course for the paranoid there is already a mechanism to do this.
/sbin/chroot.

No new user namespaces are allowed to be created inside of a chroot.
I would like to point out that this is undocumented outside of the kernel source code on every Linux system I've seen. And, it's not hugely obvious from looking at the source code unless you have some experience with kernel programming.

Also, being able to limit to exactly one (or possibly two depending on the application's usage of them) user namespace would be useful, as that would allow sand-boxing without the ability to create any more through some exploit.