FUSE: incorrect filtering of environment variables leading to privilege escalation — GLSA 201603-04

The fusermount binary in FUSE does not properly clear the environment before invoking mount or umount as root that allows a local user to overwrite arbitrary files.

Affected packages

sys-fs/fuse on all architectures
Affected versions < 2.9.4
Unaffected versions >= 2.9.4

Background

FUSE provides an interface for filesystems implemented in userspace.

Description

The fusermount binary calls setuid(geteuid()) to reset the RUID when it invokes /bin/mount so that it can use privileged mount options that are normally restricted if RUID != EUID. FUSE does not properly clear environment variables before invoking mount or umount as root allowing this to be passed to operations using elevated privileges such as LIBMOUNT_MTAB that is used by the mount commands debugging feature.

Impact

The FUSE vulnerability allows a local, unprivileged user to overwrite arbitrary files on the system.

Workaround

There is no known work around at this time.

Resolution

All FUSE users should upgrade to the latest version:

 # emerge --sync
 # emerge --ask --oneshot --verbose ">=sys-fs/fuse-2.9.4"
 

References

Release date
March 09, 2016

Latest revision
March 09, 2016: 1

Severity
normal

Exploitable
local

Bugzilla entries