Bug 1602996 (CVE-2018-10906)

Summary: CVE-2018-10906 fuse: bypass of the "user_allow_other" restriction when SELinux is active
Product: [Other] Security Response Reporter: Sam Fowler <sfowler>
Component: vulnerabilityAssignee: Red Hat Product Security <security-response-team>
Status: CLOSED ERRATA QA Contact:
Severity: medium Docs Contact:
Priority: medium    
Version: unspecifiedCC: abhgupta, bmcclain, dbaker, dblechte, dfediuck, eedri, jokerman, lemenkov, mgoldboi, michal.skrivanek, mszeredi, rschiron, sbonazzo, security-response-team, sherold, sthangav, tcallawa, trankin
Target Milestone: ---Keywords: Security
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: fuse 2.9.8, fuse 3.2.5 Doc Type: If docs needed, set a value
Doc Text:
A vulnerability was discovered in fuse. When SELinux is active, fusermount is vulnerable to a restriction bypass. This allows non-root users to mount a FUSE file system with the 'allow_other' mount option regardless of whether 'user_allow_other' is set in the fuse configuration. An attacker may use this flaw to mount a FUSE file system, accessible by other users, and trick them into accessing files on that file system, possibly causing Denial of Service or other unspecified effects.
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-10 10:33:27 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On: 1605159, 1607854, 1607855    
Bug Blocks: 1602997    

Description Sam Fowler 2018-07-19 00:57:45 UTC
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.

Comment 2 Riccardo Schirone 2018-07-20 09:56:16 UTC
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.

Comment 7 Riccardo Schirone 2018-07-20 13:08:55 UTC
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.

Comment 9 Riccardo Schirone 2018-07-23 12:41:40 UTC
Flaw was introduced by https://github.com/libfuse/libfuse/commit/555d6b504308eac6b976321ce938ee4bec62c354.

Comment 10 Riccardo Schirone 2018-07-24 12:27:41 UTC
Created fuse tracking bugs for this issue:

Affects: fedora-all [bug 1607854]

Comment 12 Andrej Nemec 2018-07-24 12:44:08 UTC
References:

https://sourceforge.net/p/fuse/mailman/message/36374753/

Comment 13 Doran Moppert 2018-08-21 07:39:04 UTC
Statement:

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.

Comment 14 errata-xmlrpc 2018-10-30 07:59:24 UTC
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