android_kernel_samsung_msm8226/drivers
Eric W. Biederman dba1ef4c96 fs: Limit sys_mount to only request filesystem modules.
Modify the request_module to prefix the file system type with "fs-"
and add aliases to all of the filesystems that can be built as modules
to match.

A common practice is to build all of the kernel code and leave code
that is not commonly needed as modules, with the result that many
users are exposed to any bug anywhere in the kernel.

Looking for filesystems with a fs- prefix limits the pool of possible
modules that can be loaded by mount to just filesystems trivially
making things safer with no real cost.

Using aliases means user space can control the policy of which
filesystem modules are auto-loaded by editing /etc/modprobe.d/*.conf
with blacklist and alias directives.  Allowing simple, safe,
well understood work-arounds to known problematic software.

This also addresses a rare but unfortunate problem where the filesystem
name is not the same as it's module name and module auto-loading
would not work.  While writing this patch I saw a handful of such
cases.  The most significant being autofs that lives in the module
autofs4.

This is relevant to user namespaces because we can reach the request
module in get_fs_type() without having any special permissions, and
people get uncomfortable when a user specified string (in this case
the filesystem type) goes all of the way to request_module.

After having looked at this issue I don't think there is any
particular reason to perform any filtering or permission checks beyond
making it clear in the module request that we want a filesystem
module.  The common pattern in the kernel is to call request_module()
without regards to the users permissions.  In general all a filesystem
module does once loaded is call register_filesystem() and go to sleep.
Which means there is not much attack surface exposed by loading a
filesytem module unless the filesystem is mounted.  In a user
namespace filesystems are not mounted unless .fs_flags = FS_USERNS_MOUNT,
which most filesystems do not set today.

Change-Id: I623b13dbdb44bb9ba7481f29575e1ca4ad8102f4
Acked-by: Serge Hallyn <serge.hallyn@canonical.com>
Acked-by: Kees Cook <keescook@chromium.org>
Reported-by: Kees Cook <keescook@google.com>
Signed-off-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Kevin F. Haggerty <haggertk@lineageos.org>
2019-08-06 10:44:59 +02:00
..
accessibility
acpi Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
adsp_factory misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
amba
ata Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
atm Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
auxdisplay Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
barcode_emul misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
base get rid of kern_path_parent() 2019-08-06 10:44:16 +02:00
battery misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
bcma Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
bif
block mm: Backport ZRAM/ZSMALLOC from Google kernel 2019-08-06 08:17:38 +02:00
bluetooth drivers: bluetooth: Fix direct references to HZ 2019-08-05 14:21:57 +02:00
cdrom Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
char Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
clk Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
clocksource sched_clock: Backport high-resolution support 2019-08-05 14:21:53 +02:00
connector Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
coresight misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
cpufreq Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
cpuidle misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
crypto Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
dca Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
devfreq misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
dio
dma Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
edac Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
eisa Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
extcon misc: Fix system_rev type mismatch 2019-08-05 09:13:25 +02:00
felica misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
fingerprint drivers: fingerprint: Kill FEATURE_SPI_WAKELOCK 2019-08-05 09:13:27 +02:00
firewire Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
firmware Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
gpio Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
gpu msm: kgsl: Fix idle timer sysfs after removing references to HZ 2019-08-05 14:21:56 +02:00
gud misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
hid Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
hsi
hv Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
hwmon Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
hwspinlock Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
i2c Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
ide mm: Backport ZRAM/ZSMALLOC from Google kernel 2019-08-06 08:17:38 +02:00
idle Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
ieee802154
infiniband fs: Limit sys_mount to only request filesystem modules. 2019-08-06 10:44:59 +02:00
input Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
iommu Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
irda misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
isdn Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
leds Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
lguest Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
macintosh Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
mca
md Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
media Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
memstick Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
message
mfd Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
misc fs: Limit sys_mount to only request filesystem modules. 2019-08-06 10:44:59 +02:00
mmc mm: Backport ZRAM/ZSMALLOC from Google kernel 2019-08-06 08:17:38 +02:00
motor tspdrv: Fix possible null pointer 2019-08-05 09:08:00 +02:00
mtd fs: Limit sys_mount to only request filesystem modules. 2019-08-06 10:44:59 +02:00
net Fix CONFIG_HZ dependency in wifi driver. 2019-08-05 14:21:55 +02:00
nfc Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
nubus
of Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
oprofile fs: Limit sys_mount to only request filesystem modules. 2019-08-06 10:44:59 +02:00
parisc Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
parport Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
pci Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
pcmcia Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
pinctrl Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
platform Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
pnp Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
power Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
pps Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
ps3
ptp
qsc misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
rapidio Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
regulator Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
remoteproc Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
rpmsg Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
rtc Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
s390 Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
sbus Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
scsi mm: Backport ZRAM/ZSMALLOC from Google kernel 2019-08-06 08:17:38 +02:00
sensorhub misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
sensors misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
sfi
sh
slimbus misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
sn
spi Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
spmi Merge tag 'LA.BF.1.1.3-02310-8x26.0' into lineage-16.0 2019-08-05 11:18:51 +02:00
ssb Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
staging mm: Backport ZRAM/ZSMALLOC from Google kernel 2019-08-06 08:17:38 +02:00
switch
target Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
tc
thermal Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
tty Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
uio
usb fs: Limit sys_mount to only request filesystem modules. 2019-08-06 10:44:59 +02:00
uwb Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
vhost Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
video video: mdss: Report PCC values from pp registers 2019-08-05 14:21:52 +02:00
virt
virtio Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
vlynq
w1 Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
watchdog Merge tag 'v3.4.113' into lineage-16.0 2019-08-05 14:20:47 +02:00
xen fs: Limit sys_mount to only request filesystem modules. 2019-08-06 10:44:59 +02:00
zorro
Kconfig misc: Import SM-G900H kernel source code 2019-08-02 15:14:10 +02:00
Makefile drivers: motor: add vibetonz and drv260x vibrator drivers 2019-08-03 12:25:05 +02:00