Re: [PATCH] Make core_pattern support namespace

From: Eric W. Biederman
Date: Thu Feb 18 2016 - 15:30:57 EST


Zhao Lei <zhaolei@xxxxxxxxxxxxxx> writes:

> Hi, Mateusz Guzik
>
>> -----Original Message-----
>> From: Mateusz Guzik [mailto:mguzik@xxxxxxxxxx]
>> Sent: Thursday, February 18, 2016 4:54 AM
>> To: Eric W. Biederman <ebiederm@xxxxxxxxxxxx>
>> Cc: Zhao Lei <zhaolei@xxxxxxxxxxxxxx>; containers@xxxxxxxxxxxxxxxxxxxxxxxxxx;
>> linux-kernel@xxxxxxxxxxxxxxx
>> Subject: Re: [PATCH] Make core_pattern support namespace
>>
>> On Wed, Feb 17, 2016 at 02:15:24PM -0600, Eric W. Biederman wrote:
>> > Mateusz Guzik <mguzik@xxxxxxxxxx> writes:
>> > > On Tue, Feb 16, 2016 at 07:33:39PM +0800, Zhao Lei wrote:
>> > >> For container based on namespace design, it is good to allow
>> > >> each container keeping their own coredump setting.
>> > >
>> > > Sorry if this is a false alarm, I don't have easy means to test it, but
>> > > is not this an immediate privilege escalation?
>> >
>> > It is. This is why we do not currently have a per namespace setting.
>> >
>>
>> Thanks for confimation.
>>
>> > Solving the user mode helper problem is technically a fair amount of
>> > work, if not theoretically challenging.
>> >
>>
>> Well, I would say custom core_patterns without pipe support are still
>> better than none.
>>
> +1.

-1.

The problem is solvable. It is just a matter of effort to build the
necessary infrastructure and make certain everything works correctly.

>> Say one would ensure a stable core_pattern (i.e. that it cannot be
>> modified as it is being parsed) and a restricted set of allowed
>> characters in the pattern (which would not include the pipe), validated
>> when one attempts to set the pattern.
>>
>> Does this sound acceptable? If so, and there are no counter ideas from
>> Lei, I can get around to that.
>>
> If we can let kernel select pipe_program in vm's filesystem, and run
> pipe_program with vm's filesystem, set a pipe for core_patterm in vm
> will be safe.
> What is your opinion on above solution?

Please see the other thread about user mode helpers that is current
active on the container mailling list.

> If above way is not acceptable, or impossible to realize, I also
> agree your solution of limit vm setting pipe.

I honestly think have a fully capable system that we have now that is
capable of using setns and entering a containers context is better than
something half baked. The solution either needs to support everything
core_pattern does today but correctly in a container environment.

To make the case that something does not need to be supported, a
convincing argument needs to be presented and tested that no one ever
does that. Without such an argument you will be breaking userspace
in a different way. Not actually fixing things.

My baseline reference implementation of all of this is that it is
possible when a sufficiently privileged process writes to core_pattern
to fork a child with the same environment and context as the writer.
That forked child could then become a kernel thread and fork any
additional children needed as user mode helpers.

Eric