On Wed, Nov 13, 2024 at 2:29 PM Jeff Layton <jlayton@xxxxxxxxxx> 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.