android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Todd Kjos 2274a7421e binder: fix null deref of proc->context
commit d35d3660e065b69fdb8bf512f3d899f350afce52 upstream.

The binder driver makes the assumption proc->context pointer is invariant after
initialization (as documented in the kerneldoc header for struct proc).
However, in commit f0fe2c0f050d ("binder: prevent UAF for binderfs devices II")
proc->context is set to NULL during binder_deferred_release().

Another proc was in the middle of setting up a transaction to the dying
process and crashed on a NULL pointer deref on "context" which is a local
set to &proc->context:

    new_ref->data.desc = (node == context->binder_context_mgr_node) ? 0 : 1;

Here's the stack:

[ 5237.855435] Call trace:
[ 5237.855441] binder_get_ref_for_node_olocked+0x100/0x2ec
[ 5237.855446] binder_inc_ref_for_node+0x140/0x280
[ 5237.855451] binder_translate_binder+0x1d0/0x388
[ 5237.855456] binder_transaction+0x2228/0x3730
[ 5237.855461] binder_thread_write+0x640/0x25bc
[ 5237.855466] binder_ioctl_write_read+0xb0/0x464
[ 5237.855471] binder_ioctl+0x30c/0x96c
[ 5237.855477] do_vfs_ioctl+0x3e0/0x700
[ 5237.855482] __arm64_sys_ioctl+0x78/0xa4
[ 5237.855488] el0_svc_common+0xb4/0x194
[ 5237.855493] el0_svc_handler+0x74/0x98
[ 5237.855497] el0_svc+0x8/0xc

The fix is to move the kfree of the binder_device to binder_free_proc()
so the binder_device is freed when we know there are no references
remaining on the binder_proc.

Fixes: f0fe2c0f050d ("binder: prevent UAF for binderfs devices II")
Acked-by: Christian Brauner <christian.brauner@ubuntu.com>
Signed-off-by: Todd Kjos <tkjos@google.com>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200622200715.114382-1-tkjos@google.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2020-06-30 15:36:48 -04:00
..
accessibility
acpi ACPI/IORT: Fix PMCG node single ID mapping handling 2020-06-22 09:30:54 +02:00
amba
android binder: fix null deref of proc->context 2020-06-30 15:36:48 -04:00
ata libata: Use per port sync for detach 2020-06-24 17:50:47 +02:00
atm
auxdisplay
base drivers: base: Fix NULL pointer exception in __platform_driver_probe() if a driver developer is foolish 2020-06-24 17:50:24 +02:00
bcma
block ps3disk: use the default segment boundary 2020-06-24 17:50:15 +02:00
bluetooth Bluetooth: hci_bcm: fix freeing not-requested IRQ 2020-06-22 09:31:18 +02:00
bus
cdrom
char /dev/mem: Revoke mappings when a driver claims the region 2020-06-24 17:50:35 +02:00
clk clk: ast2600: Fix AHB clock divider for A1 2020-06-24 17:50:35 +02:00
clocksource clocksource: dw_apb_timer_of: Fix missing clockevent timers 2020-06-22 09:30:55 +02:00
connector
counter
cpufreq cpufreq: Fix up cpufreq_boost_set_sw() 2020-06-17 16:40:33 +02:00
cpuidle cpuidle: Fix three reference count leaks 2020-06-22 09:31:10 +02:00
crypto crypto: omap-sham - add proper load balancing support for multicore 2020-06-24 17:50:38 +02:00
dax
dca
devfreq
dio
dma
dma-buf
edac EDAC/amd64: Add AMD family 17h model 60h PCI IDs 2020-06-22 09:31:20 +02:00
eisa
extcon extcon: adc-jack: Fix an error handling path in 'adc_jack_probe()' 2020-06-24 17:50:36 +02:00
firewire
firmware firmware: imx: scu: Fix possible memory leak in imx_scu_probe() 2020-06-24 17:50:30 +02:00
fpga fpga: dfl: afu: Corrected error handling levels 2020-06-24 17:50:29 +02:00
fsi
gnss gnss: sirf: fix error return code in sirf_probe() 2020-06-22 09:31:20 +02:00
gpio gpio: pca953x: fix handling of automatic address incrementing 2020-06-24 17:50:22 +02:00
gpu Revert "drm/amd/display: disable dcn20 abm feature for bring up" 2020-06-24 17:50:51 +02:00
greybus
hid HID: Add quirks for Trust Panora Graphic Tablet 2020-06-24 17:50:27 +02:00
hsi
hv Drivers: hv: vmbus: Always handle the VMBus messages on CPU0 2020-06-22 09:31:00 +02:00
hwmon hwmon: (k10temp) Add AMD family 17h model 60h PCI match 2020-06-22 09:31:19 +02:00
hwspinlock
hwtracing coresight: tmc: Fix TMC mode read in tmc_read_prepare_etb() 2020-06-24 17:50:15 +02:00
i2c Revert "i2c: tegra: Fix suspending in active runtime PM state" 2020-06-30 15:36:47 -04:00
i3c
ide
idle
iio iio: bmp280: fix compensation of humidity 2020-06-24 17:50:12 +02:00
infiniband RDMA/iw_cxgb4: cleanup device debugfs entries on ULD remove 2020-06-24 17:50:33 +02:00
input input: i8042 - Remove special PowerPC handling 2020-06-24 17:50:36 +02:00
interconnect
iommu iommu: Fix reference count leak in iommu_group_alloc. 2020-06-03 08:21:28 +02:00
ipack
irqchip
isdn
leds
lightnvm
macintosh drivers/macintosh: Fix memleak in windfarm_pm112 driver 2020-06-22 09:31:22 +02:00
mailbox mailbox: zynqmp-ipi: Fix NULL vs IS_ERR() check in zynqmp_ipi_mbox_probe() 2020-06-24 17:50:36 +02:00
mcb
md bcache: fix potential deadlock problem in btree_gc_coalesce 2020-06-24 17:50:45 +02:00
media media: ov5640: fix use of destroyed mutex 2020-06-22 09:31:19 +02:00
memory
memstick
message
mfd mfd: stmfx: Disable IRQ in suspend to avoid spurious interrupt 2020-06-24 17:50:33 +02:00
misc misc: xilinx-sdfec: improve get_user_pages_fast() error handling 2020-06-24 17:50:35 +02:00
mmc mmc: sdhci-esdhc-imx: fix the mask for tuning start point 2020-06-22 09:31:10 +02:00
mtd mtd: rawnand: tmio: Fix the probe error path 2020-06-22 09:31:26 +02:00
mux
net net: phy: Check harder for errors in get_phy_id() 2020-06-30 15:36:46 -04:00
nfc NFC: st21nfca: add missed kfree_skb() in an error path 2020-06-10 20:24:54 +02:00
ntb NTB: perf: Fix race condition when run with ntb_test 2020-06-24 17:50:41 +02:00
nubus
nvdimm
nvme nvme-pci: use simple suspend when a HMB is enabled 2020-06-24 17:50:43 +02:00
nvmem nvmem: qfprom: remove incorrect write support 2020-06-10 20:24:57 +02:00
of of: Fix a refcounting bug in __of_attach_node_sysfs() 2020-06-24 17:50:35 +02:00
opp
oprofile
parisc
parport
pci PCI: amlogic: meson: Don't use FAST_LINK_MODE to set up link 2020-06-24 17:50:31 +02:00
pcmcia
perf drivers/perf: hisi: Fix wrong value for all counters enable 2020-06-24 17:50:41 +02:00
phy drivers: phy: sr-usb: do not use internal fsm for USB2 phy init 2020-06-24 17:50:28 +02:00
pinctrl pinctrl: freescale: imx: Fix an error handling path in 'imx_pinctrl_probe()' 2020-06-24 17:50:38 +02:00
platform platform/x86: asus_wmi: Reserve more space for struct bias_args 2020-06-22 09:31:11 +02:00
pnp
power power: supply: smb347-charger: IRQSTAT_D is volatile 2020-06-24 17:50:25 +02:00
powercap
pps
ps3
ptp
pwm pwm: jz4740: Enhance precision in calculation of duty cycle 2020-06-24 17:50:52 +02:00
rapidio
ras
regulator regulator: qcom-rpmh: Fix typos in pm8150 and pm8150l 2020-06-22 09:30:58 +02:00
remoteproc remoteproc: qcom_q6v5_mss: map/unmap mpss segments before/after use 2020-06-24 17:50:13 +02:00
reset
rpmsg
rtc rtc: rv3028: Add missed check for devm_regmap_init_i2c() 2020-06-24 17:50:36 +02:00
s390 s390/qdio: put thinint indicator after early error 2020-06-24 17:50:22 +02:00
sbus
scsi scsi: ufs-bsg: Fix runtime PM imbalance on error 2020-06-24 17:50:47 +02:00
sfi
sh
siox
slimbus slimbus: ngd: get drvdata from correct device 2020-06-24 17:50:22 +02:00
soc soc/tegra: pmc: Select GENERIC_PINCONF 2020-06-22 09:31:22 +02:00
soundwire soundwire: slave: don't init debugfs on device registration error 2020-06-24 17:50:23 +02:00
spi spi: dw: Return any value retrieved from the dma_transfer callback 2020-06-22 09:31:10 +02:00
spmi
ssb
staging staging: sm750fb: add missing case while setting FB_VISUAL 2020-06-24 17:50:24 +02:00
target scsi: target: tcmu: Fix a use after free in tcmu_check_expired_queue_cmd() 2020-06-24 17:50:34 +02:00
tc
tee
thermal thermal/drivers/ti-soc-thermal: Avoid dereferencing ERR_PTR 2020-06-24 17:50:23 +02:00
thunderbolt
tty tty: n_gsm: Fix bogus i++ in gsm_data_kick 2020-06-24 17:50:29 +02:00
uio
usb usb/ehci-platform: Set PM runtime as active on resume 2020-06-24 17:50:44 +02:00
vfio vfio/mdev: Fix reference count leak in add_mdev_supported_type 2020-06-24 17:50:36 +02:00
vhost scsi: vhost: Notify TCM about the maximum sg entries supported per command 2020-06-24 17:50:17 +02:00
video backlight: lp855x: Ensure regulators are disabled on probe failure 2020-06-24 17:50:09 +02:00
virt
virtio
visorbus
vlynq
vme
w1 w1: omap-hdq: cleanup to add missing newline for some dev_dbg 2020-06-22 09:31:26 +02:00
watchdog watchdog: da9062: No need to ping manually before setting timeout 2020-06-24 17:50:32 +02:00
xen xen/pvcalls-back: test for errors when calling backend_connect() 2020-06-17 16:40:38 +02:00
zorro
Kconfig
Makefile