[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAOQ4uxgAkethXQgfU9jOWvd6PooaOY-kKc0nF12NvERGp5yX+Q@mail.gmail.com>
Date: Thu, 14 Nov 2024 07:55:37 +0100
From: Amir Goldstein <amir73il@...il.com>
To: Jeff Layton <jlayton@...nel.org>
Cc: Erin Shepherd <erin.shepherd@....eu>, "Darrick J. Wong" <djwong@...nel.org>,
Christian Brauner <brauner@...nel.org>, linux-kernel@...r.kernel.org,
linux-fsdevel@...r.kernel.org, christian@...uner.io, paul@...l-moore.com,
bluca@...ian.org, Chuck Lever <chuck.lever@...cle.com>
Subject: Re: [PATCH 0/4] pidfs: implement file handle support
On Wed, Nov 13, 2024 at 2:29 PM Jeff Layton <jlayton@...nel.org> wrote:
>
> On Wed, 2024-11-13 at 11:17 +0100, Erin Shepherd wrote:
> > On 13/11/2024 01:40, Darrick J. Wong wrote:
> > > > Hmm, I guess I might have made that possible, though I'm certainly not
> > > > familiar enough with the internals of nfsd to be able to test if I've done
> > > > so.
> > > AFAIK check_export() in fs/nfsd/export.c spells this it out:
> > >
> > > /* There are two requirements on a filesystem to be exportable.
> > > * 1: We must be able to identify the filesystem from a number.
> > > * either a device number (so FS_REQUIRES_DEV needed)
> > > * or an FSID number (so NFSEXP_FSID or ->uuid is needed).
> > > * 2: We must be able to find an inode from a filehandle.
> > > * This means that s_export_op must be set.
> > > * 3: We must not currently be on an idmapped mount.
> > > */
> > >
> > > Granted I've been wrong on account of stale docs before. :$
> > >
> > > Though it would be kinda funny if you *could* mess with another
> > > machine's processes over NFS.
> > >
> > > --D
> >
> > To be clear I'm not familiar enough with the workings of nfsd to tell if
> > pidfs fails those requirements and therefore wouldn't become exportable as
> > a result of this patch, though I gather from you're message that we're in the
> > clear?
> >
> > Regardless I think my question is: do we think either those requirements could
> > change in the future, or the properties of pidfs could change in the future,
> > in ways that could accidentally make the filesystem exportable?
> >
> > I guess though that the same concern would apply to cgroupfs and it hasn't posed
> > an issue so far.
>
> We have other filesystems that do this sort of thing (like cgroupfs),
> and we don't allow them to be exportable. We'll need to make sure that
> that's the case before we merge this, of course, as I forget the
> details of how that works.
TBH, I cannot find how export of cgroups with NFSEXP_FSID
is prevented.
We should probably block nfs export of SB_NOUSER and anyway,
this should be tied to the flag for relaxing CAP_DAC_READ_SEARCH,
because this is a strong indication that it's not a traditional nfs file handle.
Thanks,
Amir.
Powered by blists - more mailing lists