2022-10-16 17:49:50

by Simon Thoby

[permalink] [raw]
Subject: [PATCH] fuse: enable unprivileged mounts for fuseblk

Commit 4ad769f3c346ec3d458e255548dec26ca5284cf6 ("fuse: Allow fully
unprivileged mounts") enabled mounting filesystems with the 'fuse' type for
any user with CAP_SYS_ADMIN inside their respective user namespace, but did
not do so for the 'fuseblk' filesystem type.

Some FUSE filesystems implementations - like ntfs-3g - prefer using
'fuseblk' over 'fuse', which imply unprivileged users could not use these
tools - in their "out-of-the-box" configuration, as these tools can always
be patched to use the 'fuse' filesystem type to circumvent the problem.

Enable unprivileged mounts for the 'fuseblk' type, thus uniformizing the
behavior of the two FUSE filesystem types.

Signed-off-by: Simon Thoby <[email protected]>
---
fs/fuse/inode.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
index 6b3beda16c1b..d17f87531dc8 100644
--- a/fs/fuse/inode.c
+++ b/fs/fuse/inode.c
@@ -1839,7 +1839,7 @@ static struct file_system_type fuseblk_fs_type = {
.init_fs_context = fuse_init_fs_context,
.parameters = fuse_fs_parameters,
.kill_sb = fuse_kill_sb_blk,
- .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE,
+ .fs_flags = FS_REQUIRES_DEV | FS_HAS_SUBTYPE | FS_USERNS_MOUNT,
};
MODULE_ALIAS_FS("fuseblk");


base-commit: 472c7791cc2b48010af3ce61ce76edbaa26500d2
--
2.38.0


2022-11-07 14:41:40

by Miklos Szeredi

[permalink] [raw]
Subject: Re: [PATCH] fuse: enable unprivileged mounts for fuseblk

On Sun, 16 Oct 2022 at 19:00, Simon Thoby <[email protected]> wrote:
>
> Commit 4ad769f3c346ec3d458e255548dec26ca5284cf6 ("fuse: Allow fully
> unprivileged mounts") enabled mounting filesystems with the 'fuse' type for
> any user with CAP_SYS_ADMIN inside their respective user namespace, but did
> not do so for the 'fuseblk' filesystem type.
>
> Some FUSE filesystems implementations - like ntfs-3g - prefer using
> 'fuseblk' over 'fuse', which imply unprivileged users could not use these
> tools - in their "out-of-the-box" configuration, as these tools can always
> be patched to use the 'fuse' filesystem type to circumvent the problem.
>
> Enable unprivileged mounts for the 'fuseblk' type, thus uniformizing the
> behavior of the two FUSE filesystem types.
>
> Signed-off-by: Simon Thoby <[email protected]>

NAK in this form.

Please look at all the places where there's a difference between the
fuse and the fuseblk behavior and give proof that they won't result in
a security issue in case fuseblk is mounted unprivileged.

As a possibly much better alternative, try modifying the ntfs-3g code
to be able to work using the "fuse" fs type as well.

Thanks,
Miklos

fuseblk enables synchronouse RELEASE and DESTROY requests that are
unsuitable for unprivileged operation.


Thanks,
Miklos