All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jamie Lokier <jamie@shareable.org>
To: Jeff Layton <jlayton@redhat.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>,
	linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org,
	pavel@ucw.cz, miklos@szeredi.hu, viro@ZenIV.linux.org.uk
Subject: Re: [PATCH 0/3] vfs: plug some holes involving LAST_BIND symlinks and file bind mounts (try #5)
Date: Mon, 23 Nov 2009 22:49:48 +0000	[thread overview]
Message-ID: <20091123224948.GB5598@shareable.org> (raw)
In-Reply-To: <20091123173616.75c3f600@tlielax.poochiereds.net>

Jeff Layton wrote:
> > check_path_accessible seems pretty horrible.   If a process is running
> > inside of a subdirectory it doesn't have permissions to access, say
> > a chroot, /proc/self/fd/XXX becomes completely unusable.
> > 
> 
> Hmm...I have this in there:
> 
> +		/* are we at global root or root of namespace? */
> +		if ((tdentry == root.dentry && vfsmnt == root.mnt) ||
> +		    vfsmnt->mnt_parent == vfsmnt)
> +			break;
> 
> ...In the case of a chroot, wouldn't "current->fs->root" point to the
> root of the process' namespace? Or am I misunderstanding what
> current->fs actually represents?

A process can run inside a subdirectory it doesn't have permissions to
access without that being a chroot.

It can also run inside a subdirectory that isn't accessible from it's
root, if that's how it was started - as well as having other
descriptors pointing to things outside its root.

It can also be passed file descriptors from outside it's root while
it's running.

Really, I think the /proc/PID/fd/N check should restrict the open to
the O_* limitations that were used to open fd N before, and not have
any connection to actual paths at the time of this check.

-- Jamie

  reply	other threads:[~2009-11-23 22:49 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-11-23 17:41 [PATCH 0/3] vfs: plug some holes involving LAST_BIND symlinks and file bind mounts (try #5) Jeff Layton
2009-11-23 17:41 ` [PATCH 1/3] vfs: force reval of target when following LAST_BIND symlinks Jeff Layton
2009-11-23 17:41 ` [PATCH 2/3] vfs: force reval on dentry of bind mounted files on FS_REVAL_DOT filesystems Jeff Layton
2009-11-23 17:41 ` [PATCH 3/3] vfs: check path permissions on target of LAST_BIND symlinks Jeff Layton
2009-11-23 22:05 ` [PATCH 0/3] vfs: plug some holes involving LAST_BIND symlinks and file bind mounts (try #5) Eric W. Biederman
2009-11-23 22:36   ` Jeff Layton
2009-11-23 22:49     ` Jamie Lokier [this message]
2009-11-23 23:15       ` Jeff Layton
2009-11-23 23:35         ` Eric W. Biederman
2009-11-24  0:34           ` Jeff Layton
2009-11-24  1:20             ` Jamie Lokier
2009-11-24 11:26               ` Jeff Layton
2009-11-24 11:53                 ` Miklos Szeredi
2009-11-24 12:09                   ` Pavel Machek
2009-11-24 12:59                     ` Miklos Szeredi
2009-11-30 12:28                       ` Pavel Machek
2009-11-30 19:21                         ` Eric W. Biederman
2009-11-24 13:13                     ` Duane Griffin
2009-11-24 13:13                       ` Duane Griffin
2009-11-30 19:00                       ` Jamie Lokier
2009-12-01  8:56                         ` Duane Griffin
2009-12-01  8:56                           ` Duane Griffin
2009-12-16 12:31         ` Al Viro
2009-12-20 19:59           ` Pavel Machek
2009-12-20 21:04             ` Al Viro
2009-12-20 21:06               ` Pavel Machek
2009-12-20 21:23                 ` Al Viro
2010-01-01 15:40                   ` Pavel Machek
2010-01-10  4:42                     ` Al Viro
2009-12-01 13:15   ` Jeff Layton

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=20091123224948.GB5598@shareable.org \
    --to=jamie@shareable.org \
    --cc=ebiederm@xmission.com \
    --cc=jlayton@redhat.com \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=miklos@szeredi.hu \
    --cc=pavel@ucw.cz \
    --cc=viro@ZenIV.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.