FUSE through version 3.2.4 is vulnerable to a bypass of the 'user_allow_other'
restriction that allows, when SELinux is active, non-root users to mount FUSE
file systems with the 'allow_other' mount option. Local users can exploit this
with the 'fusermount' command, bypassing the system configuration. This results
in a mounted file system accessible by all other users including root.
This flaw allows a local attacker to mount a FUSE file system with the
'allow_other' option, even if they should not be able to do so. As a
consequence, if the attacker can trick other users to access his FUSE mount
point, he can cause Denial of Services or other unspecified effects. Accesses to
the FUSE mount point could be slowed down or delayed indefinitely. Moreover the
FUSE file system could present files or directories of unlimited length, or
directory structures of unlimited depth, thus causing DoS or other unspecified
effects on other programs which do not consider this possibility.
When checking whether allow_other/allow_root are allowed, fusermount lets users escape commas, even when the mount options do not permit backslashes. This allows a malicious user to hide options forbidden by fusermount. By using specially crafted values in the `context` mount option interpreted by SELinux, it is possible to use a backslash and smuggle the `allow_other` mount option.
Flaw was introduced by https://github.com/libfuse/libfuse/commit/555d6b504308eac6b976321ce938ee4bec62c354.
Created fuse tracking bugs for this issue:
Affects: fedora-all [bug 1607854]
This issue did not affect the versions of fuse as shipped with Red Hat Enterprise Linux 6 as they did not consider escaped characters when checking mount options. This issue is present in fuse packages included with Red Hat Virtualization, however it is not exploitable under any supported configuration.
This issue has been addressed in the following products:
Red Hat Enterprise Linux 7
Via RHSA-2018:3324 https://access.redhat.com/errata/RHSA-2018:3324