Re: [PATCH 3/4] userns: Add a more complete capability subset testto commit_creds
From: Serge E. Hallyn
Date: Fri Dec 14 2012 - 19:42:13 EST
Quoting Eric W. Biederman (ebiederm@xxxxxxxxxxxx):
> "Serge E. Hallyn" <serge@xxxxxxxxxx> writes:
>
> > Quoting Eric W. Biederman (ebiederm@xxxxxxxxxxxx):
> >>
> >> When unsharing a user namespace we reduce our credentials to just what
> >> can be done in that user namespace. This is a subset of the credentials
> >> we previously had. Teach commit_creds to recognize this is a subset
> >> of the credentials we have had before and don't clear the dumpability flag.
> >>
> >> This allows an unprivileged program to do:
> >> unshare(CLONE_NEWUSER);
> >> fd = open("/proc/self/uid_map", O_RDWR);
> >>
> >> Where previously opening the uid_map writable would fail because
> >> the the task had been made non-dumpable.
> >>
> >> Signed-off-by: "Eric W. Biederman" <ebiederm@xxxxxxxxxxxx>
> >
> > Acked-by: Serge Hallyn <serge.hallyn@xxxxxxxxxxxxx>
> >
> >> ---
> >> kernel/cred.c | 26 +++++++++++++++++++++++++-
> >> 1 files changed, 25 insertions(+), 1 deletions(-)
> >>
> >> diff --git a/kernel/cred.c b/kernel/cred.c
> >> index 48cea3d..993a7ea41 100644
> >> --- a/kernel/cred.c
> >> +++ b/kernel/cred.c
> >> @@ -455,6 +455,30 @@ error_put:
> >> return ret;
> >> }
> >>
> >
> > Do you think we need to warn that this can only be used for
> > commit_creds? (i.e. if someone tried ot use this in some
> > other context, the 'creds are subset of target ns is a child
> > of current_ns' assumption would be wrong)
>
> This function should be a general test valid at any time.
>
> Except that I forgot the bit of the test that asks is the original cred
> the owner of the subset user namespace.
Ok, with that change that'll be fine :)
> I will respin this patch.
Cool, thanks.
--
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/