On Tue, Nov 10, 2026 at 10:14:54AM +0100, Christian Brauner wrote: > The fuse server can register any regular file as a backing file. procfs > and binfmt_misc files are already refused by the stacking depth check as > both set s_stack_depth to FILESYSTEM_MAX_STACK_DEPTH. sysfs and the > other pseudo filesystems aren't. Reads and writes of the fuse file would > then be done on the pseudo file with the fuse server's credentials. > Refuse files on pseudo filesystems just like loop does. > > Signed-off-by: Christian Brauner (Amutable) <[email protected]> > --- > fs/fuse/backing.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/fs/fuse/backing.c b/fs/fuse/backing.c > index 8c21a8a74efb..4e4fb810ddaa 100644 > --- a/fs/fuse/backing.c > +++ b/fs/fuse/backing.c > @@ -147,6 +147,9 @@ static int fuse_backing_open_file(struct fuse_conn *fc, > struct fuse_backing *fb, > if (inode->i_sb->s_stack_depth >= fc->max_stack_depth) > return -ELOOP; > > + if (file_is_pseudo(file)) > + return -EINVAL; > + > fb->type = FUSE_BACKING_PATH; > fb->path = file->f_path; > path_get(&fb->path); > > -- > 2.53.0 >
Reviewed-by: Amir Goldstein <[email protected]>
