Skip to content

Permission check for FIFO open in FUSE(filesystem) #218

@ghost

Description

I am trying to open a FIFO for which permissions doesn't exists for the uid trying to open a file in FUSE(filesystem). I know that for FIFO open call will not come to FUSE and directly handled by kernel, but FUSE open call does the permission checks from fuse_context. How, is it possible, that permission can be denied because the call is not coming in FUSE. I have a stack trace for open system call for BLOCKING open for FIFO. Here after dentry_open we got to fifo_open in kernel, without going to fuse.

pipe_wait+0x61/0xa0
wait_for_partner+0x30/0x60
fifo_open+0x195/0x2d0
do_dentry_open+0x233/0x2e0
vfs_open+0x49/0x50
do_last+0x562/0x1370
path_openat+0xbb/0x670
do_filp_open+0x3a/0x90
do_sys_open+0x129/0x2a0
But for other file type, we get open call inside FUSE.

fuse_open+0x10/0x20
do_dentry_open+0x233/0x2e0
vfs_open+0x49/0x50
do_last+0x562/0x1370
path_openat+0xbb/0x670
do_filp_open+0x3a/0x90
do_sys_open+0x129/0x2a0
Is it possible, that the permission checks can be done for FIFO files managed by FUSE while opening. If not, how is it possible to deny permissions for FIFO opened by users not having FIFO write permissions in FUSE. If this a bug, is it in libfuse or kernel.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions