From: "Serge E. Hallyn" <serue@us.ibm.com>
To: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Miklos Szeredi <miklos@szeredi.hu>,
linuxram@us.ibm.com, linux-fsdevel@vger.kernel.org,
viro@ftp.linux.org.uk, containers@lists.osdl.org,
akpm@linux-foundation.org, linux-kernel@vger.kernel.org
Subject: Re: [Devel] Re: [patch 05/10] add "permit user mounts in new namespace" clone flag
Date: Tue, 17 Apr 2007 09:25:19 -0500 [thread overview]
Message-ID: <20070417142519.GF1442@sergelap.austin.ibm.com> (raw)
In-Reply-To: <m1k5wbjrsh.fsf@ebiederm.dsl.xmission.com>
Quoting Eric W. Biederman (ebiederm@xmission.com):
> "Serge E. Hallyn" <serue@us.ibm.com> writes:
> >>
> >> Why are directory permissions not sufficient to allow/deny non-priveleged
> > mounts?
> >> I don't understand that contention yet.
> >
> > The same scenarios laid out previously in this thread. I.e.
> >
> > 1. user hallyn does mount --bind / /home/hallyn/root
> > 2. (...)
> > 3. admin does "deluser hallyn"
> >
> > and deluser starts wiping out root
> >
> > Or,
> >
> > 1. user hallyn does mount --bind / /home/hallyn/root
> > 2. backup daemon starts backing up /home/hallyn/root/home/hallyn/root/home...
> >
> > So we started down the path of forcing users to clone a new namespace
> > before doing user mounts, which is what the clone flag was about. Using
> > per-mount flags also suffices as you had pointed out, which is being
> > done here. But directory permissions are inadequate.
>
> Interesting....
>
> So far even today these things can happen, however they are sufficiently
> unlikely the tools don't account for them.
>
> Once a hostile user can cause them things are more of a problem.
>
> > (Unless you want to tackle each problem legacy tool one at a time to
> > remove problems - i.e. deluser should umount everything under
> > /home/hallyn before deleting, backup should be spawned from it's own
> > namespace cloned right after boot or just back up on one filesystem,
> > etc.)
>
> I don't see a way that backup and deluser won't need to be modified
> to work properly in a system where non-priveleged mounts are allowed,
> at least they will need to account for /share.
Yes, all the tools need to avoid /share. Though at least it's a single
location we can avoid, and it is purely a system configuration issue,
whereas fixing deluser to watch for user mounts under /home involves (I
assume) rewriting a part of it.
> That said it is clearly a hazard if we enable this functionality by
> default.
>
> If we setup a pam module that triggers on login and perhaps when
> cron and at jobs run to setup an additional mount namespace I think
> keeping applications locked away in their own mount namespace is
> sufficient to avoid hostile users from doing unexpected things to
> the initial mount namespace. So unless I am mistake it should be
> relatively simple to prevent user space from encountering problems.
>
> That still leaves the question of how we handle systems with an old
> user space that is insufficiently robust to deal with mounts occurring
> at unexpected locations.
>
>
> I think a simple sysctl to enable/disable of non-priveleged mounts
> defaulting to disabled is enough.
>
> Am I correct or will it be more difficult than just a little pam
> module to ensure non-trusted users never run in the initial mount
> namespace?
The danger with relying on the pam module is that you have to plug it in
all the right places. For instance, if we're talking about malicious
users, now we have to start worrying about an ftp daemon with user login
that isn't using pam, and happens to have an exploitable bug.
So it seems to me the per-mount flag you suggested really is the best
solution. Now the pam module is still needed, but only to set things up
so that the user *can* do user mounts. If there's a way to login
bypassing the pam module, then the user simply won't be able to do user
mounts anywhere but under /share, and as Miklos suggested the perms on
share can probably be set to 000.
-serge
next prev parent reply other threads:[~2007-04-17 14:25 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-04-12 16:45 [patch 00/10] (resend) mount ownership and unprivileged mount syscall Miklos Szeredi
2007-04-12 16:45 ` [patch 01/10] add user mounts to the kernel Miklos Szeredi
2007-04-12 16:45 ` [patch 02/10] allow unprivileged umount Miklos Szeredi
2007-04-12 16:45 ` [patch 03/10] account user mounts Miklos Szeredi
2007-04-12 16:45 ` [patch 04/10] add "permit user mounts" flag to namespaces Miklos Szeredi
2007-04-12 16:45 ` [patch 05/10] add "permit user mounts in new namespace" clone flag Miklos Szeredi
2007-04-12 20:32 ` Serge E. Hallyn
2007-04-13 4:16 ` Herbert Poetzl
2007-04-13 7:09 ` Miklos Szeredi
2007-04-13 4:45 ` Eric W. Biederman
2007-04-13 7:12 ` Miklos Szeredi
2007-04-13 13:47 ` Serge E. Hallyn
2007-04-13 14:22 ` Eric W. Biederman
2007-04-16 8:47 ` [Devel] " Ram Pai
2007-04-16 9:32 ` Miklos Szeredi
2007-04-16 9:49 ` Ram Pai
2007-04-16 9:56 ` Miklos Szeredi
2007-04-16 15:43 ` Eric W. Biederman
2007-04-16 15:58 ` Miklos Szeredi
2007-04-16 19:16 ` Eric W. Biederman
2007-04-16 19:56 ` Serge E. Hallyn
2007-04-17 9:04 ` Eric W. Biederman
2007-04-17 11:09 ` Miklos Szeredi
2007-04-17 18:16 ` Eric W. Biederman
2007-04-17 18:36 ` Miklos Szeredi
2007-04-17 19:54 ` Eric W. Biederman
2007-04-18 9:11 ` Miklos Szeredi
2007-04-18 13:55 ` Trond Myklebust
2007-04-18 14:03 ` Miklos Szeredi
2007-04-18 14:26 ` Trond Myklebust
2007-04-18 15:01 ` Christoph Hellwig
2007-04-18 19:00 ` Trond Myklebust
2007-04-18 15:06 ` Miklos Szeredi
2007-04-18 17:14 ` Eric W. Biederman
2007-04-18 18:05 ` Miklos Szeredi
2007-04-19 9:02 ` Miklos Szeredi
2007-04-17 14:25 ` Serge E. Hallyn [this message]
2007-04-17 14:28 ` Serge E. Hallyn
2007-04-16 17:14 ` Ram Pai
2007-04-16 17:50 ` Miklos Szeredi
2007-04-17 17:07 ` Serge E. Hallyn
2007-04-17 17:44 ` Miklos Szeredi
2007-04-17 18:15 ` Serge E. Hallyn
2007-04-17 18:58 ` Miklos Szeredi
2007-04-17 19:28 ` Ram Pai
2007-04-17 19:43 ` Miklos Szeredi
2007-04-17 20:25 ` Ram Pai
2007-04-18 9:19 ` Miklos Szeredi
2007-04-18 18:35 ` Ram Pai
2007-04-18 19:14 ` Miklos Szeredi
2007-04-18 19:41 ` Ram Pai
2007-04-19 8:36 ` Miklos Szeredi
2007-04-12 16:45 ` [patch 06/10] propagate error values from clone_mnt Miklos Szeredi
2007-04-12 16:45 ` [patch 07/10] allow unprivileged bind mounts Miklos Szeredi
2007-04-12 16:45 ` [patch 08/10] put declaration of put_filesystem() in fs.h Miklos Szeredi
2007-04-12 16:45 ` [patch 09/10] allow unprivileged mounts Miklos Szeredi
2007-04-12 16:45 ` [patch 10/10] allow unprivileged fuse mounts Miklos Szeredi
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20070417142519.GF1442@sergelap.austin.ibm.com \
--to=serue@us.ibm.com \
--cc=akpm@linux-foundation.org \
--cc=containers@lists.osdl.org \
--cc=ebiederm@xmission.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxram@us.ibm.com \
--cc=miklos@szeredi.hu \
--cc=viro@ftp.linux.org.uk \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox