android_kernel_motorola_sm6375/drivers
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Zekun Shen c4e2f57727 ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111
[ Upstream commit 564d4eceb97eaf381dd6ef6470b06377bb50c95a ]

The bug was found during fuzzing. Stacktrace locates it in
ath5k_eeprom_convert_pcal_info_5111.
When none of the curve is selected in the loop, idx can go
up to AR5K_EEPROM_N_PD_CURVES. The line makes pd out of bound.
pd = &chinfo[pier].pd_curves[idx];

There are many OOB writes using pd later in the code. So I
added a sanity check for idx. Checks for other loops involving
AR5K_EEPROM_N_PD_CURVES are not needed as the loop index is not
used outside the loops.

The patch is NOT tested with real device.

The following is the fuzzing report

BUG: KASAN: slab-out-of-bounds in ath5k_eeprom_read_pcal_info_5111+0x126a/0x1390 [ath5k]
Write of size 1 at addr ffff8880174a4d60 by task modprobe/214

CPU: 0 PID: 214 Comm: modprobe Not tainted 5.6.0 #1
Call Trace:
 dump_stack+0x76/0xa0
 print_address_description.constprop.0+0x16/0x200
 ? ath5k_eeprom_read_pcal_info_5111+0x126a/0x1390 [ath5k]
 ? ath5k_eeprom_read_pcal_info_5111+0x126a/0x1390 [ath5k]
 __kasan_report.cold+0x37/0x7c
 ? ath5k_eeprom_read_pcal_info_5111+0x126a/0x1390 [ath5k]
 kasan_report+0xe/0x20
 ath5k_eeprom_read_pcal_info_5111+0x126a/0x1390 [ath5k]
 ? apic_timer_interrupt+0xa/0x20
 ? ath5k_eeprom_init_11a_pcal_freq+0xbc0/0xbc0 [ath5k]
 ? ath5k_pci_eeprom_read+0x228/0x3c0 [ath5k]
 ath5k_eeprom_init+0x2513/0x6290 [ath5k]
 ? ath5k_eeprom_init_11a_pcal_freq+0xbc0/0xbc0 [ath5k]
 ? usleep_range+0xb8/0x100
 ? apic_timer_interrupt+0xa/0x20
 ? ath5k_eeprom_read_pcal_info_2413+0x2f20/0x2f20 [ath5k]
 ath5k_hw_init+0xb60/0x1970 [ath5k]
 ath5k_init_ah+0x6fe/0x2530 [ath5k]
 ? kasprintf+0xa6/0xe0
 ? ath5k_stop+0x140/0x140 [ath5k]
 ? _dev_notice+0xf6/0xf6
 ? apic_timer_interrupt+0xa/0x20
 ath5k_pci_probe.cold+0x29a/0x3d6 [ath5k]
 ? ath5k_pci_eeprom_read+0x3c0/0x3c0 [ath5k]
 ? mutex_lock+0x89/0xd0
 ? ath5k_pci_eeprom_read+0x3c0/0x3c0 [ath5k]
 local_pci_probe+0xd3/0x160
 pci_device_probe+0x23f/0x3e0
 ? pci_device_remove+0x280/0x280
 ? pci_device_remove+0x280/0x280
 really_probe+0x209/0x5d0

Reported-by: Brendan Dolan-Gavitt <brendandg@nyu.edu>
Signed-off-by: Zekun Shen <bruceshenzk@gmail.com>
Signed-off-by: Kalle Valo <quic_kvalo@quicinc.com>
Link: https://lore.kernel.org/r/YckvDdj3mtCkDRIt@a-10-27-26-18.dynapool.vpn.nyu.edu
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-15 14:18:31 +02:00
..
accessibility
acpi ACPI: CPPC: Avoid out of bounds access when parsing _CPC data 2022-04-15 14:18:29 +02:00
amba
android binder: fix handling of error during copy 2022-01-27 09:19:38 +01:00
ata ata: pata_hpt37x: fix PCI clock detection 2022-03-08 19:07:46 +01:00
atm atm: eni: Add check for dma_map_single 2022-03-23 09:12:07 +01:00
auxdisplay
base PM: core: keep irq flags in device_pm_check_callbacks() 2022-04-15 14:18:23 +02:00
bcma
block loop: use sysfs_emit() in the sysfs xxx show() 2022-04-15 14:18:22 +02:00
bluetooth Bluetooth: btmtksdio: Fix kernel oops in btmtksdio_interrupt 2022-04-15 14:18:16 +02:00
bus
cdrom
char hwrng: atmel - disable trng on failure path 2022-04-15 14:18:05 +02:00
clk clk: Initialize orphan req_rate 2022-04-15 14:18:21 +02:00
clocksource clocksource: acpi_pm: fix return value of __setup handler 2022-04-15 14:18:05 +02:00
connector
counter
cpufreq cpufreq: Fix initialization of min and max frequency QoS requests 2022-01-27 09:19:44 +01:00
cpuidle
crypto crypto: ccp - ccp_dmaengine_unregister release dma channels 2022-04-15 14:18:05 +02:00
dax dax: make sure inodes are flushed before destroy cache 2022-04-15 14:18:12 +02:00
dca
devfreq
dio
dma dmaengine: shdma: Fix runtime PM imbalance on error 2022-03-08 19:07:45 +01:00
dma-buf udmabuf: validate ubuf->pagecount 2022-04-15 14:18:10 +02:00
edac EDAC: Fix calculation of returned address and next offset in edac_align_ptr() 2022-02-23 11:59:59 +01:00
eisa
extcon
firewire
firmware firmware: google: Properly state IOMEM dependency 2022-04-15 14:18:20 +02:00
fpga
fsi
gnss
gpio gpio: ts4900: Do not set DAT and OE together 2022-03-16 13:21:46 +01:00
gpu drm: Add orientation quirk for GPD Win Max 2022-04-15 14:18:31 +02:00
greybus greybus: svc: fix an error handling bug in gb_svc_hello() 2022-04-15 14:17:58 +02:00
hid HID: i2c-hid: fix GET/SET_REPORT for unnumbered reports 2022-04-15 14:18:12 +02:00
hsi HSI: core: Fix return freed object in hsi_new_client 2022-01-27 09:19:41 +01:00
hv hv_balloon: rate-limit "Unhandled message" warning 2022-04-15 14:18:15 +02:00
hwmon hwmon: (pmbus) Add Vin unit off handling 2022-04-15 14:18:05 +02:00
hwspinlock
hwtracing coresight: Fix TRCCONFIGR.QE sysfs interface 2022-04-15 14:17:57 +02:00
i2c i2c: mux: demux-pinctrl: do not deactivate a master that is not active 2022-04-15 14:18:16 +02:00
i3c
ide
idle
iio iio: adc: Add check for devm_request_threaded_irq 2022-04-15 14:18:18 +02:00
infiniband RDMA/mlx5: Fix memory leak in error flow for subscribe event routine 2022-04-15 14:18:16 +02:00
input Revert "Input: clear BTN_RIGHT/MIDDLE on buttonpads" 2022-04-15 14:18:00 +02:00
interconnect
iommu iommu/ipmmu-vmsa: Check for error num after setting mask 2022-04-15 14:18:12 +02:00
ipack
irqchip irqchip/nvic: Release nvic_base upon failure 2022-04-15 14:18:22 +02:00
isdn mISDN: change function names to avoid conflicts 2022-01-11 15:23:33 +01:00
leds
lightnvm
macintosh
mailbox mailbox: tegra-hsp: Flush whole channel 2022-04-15 14:18:01 +02:00
mcb
md dm crypt: fix get_key_size compiler warning if !CONFIG_KEYS 2022-04-15 14:18:13 +02:00
media media: hdpvr: initialize dev->worker at hdpvr_register_videodev 2022-04-15 14:18:25 +02:00
memory memory: emif: check the pointer temp in get_device_details() 2022-04-15 14:18:09 +02:00
memstick
message
mfd mfd: asic3: Add missing iounmap() on error asic3_mfd_probe 2022-04-15 14:18:17 +02:00
misc kgdbts: fix return value of __setup handler 2022-04-15 14:18:20 +02:00
mmc mmc: host: Return an error when ->enable_sdio_irq() ops is missing 2022-04-15 14:18:25 +02:00
mtd ubi: fastmap: Return error code if memory allocation fails in add_aeb() 2022-04-15 14:18:30 +02:00
mux
net ath5k: fix OOB in ath5k_eeprom_read_pcal_info_5111 2022-04-15 14:18:31 +02:00
nfc nfc: st21nfca: Fix potential buffer overflows in EVT_TRANSACTION 2022-03-28 08:46:43 +02:00
ntb
nubus
nvdimm
nvme nvme-rdma: fix possible use-after-free in transport error_recovery work 2022-02-23 11:59:56 +01:00
nvmem
of of: base: Improve argument length mismatch error 2022-01-27 09:19:51 +01:00
opp
oprofile
parisc parisc: Fix sglist access in ccio-dma.c 2022-02-23 11:59:54 +01:00
parport
pci PCI: Reduce warnings on possible RW1C corruption 2022-04-15 14:18:15 +02:00
pcmcia pcmcia: fix setting of kthread task states 2022-01-27 09:19:37 +01:00
perf
phy phy: dphy: Correct lpx parameter and its derivatives(ta_{get,go,sure}) 2022-04-15 14:18:18 +02:00
pinctrl pinctrl: nuvoton: npcm7xx: Use %zu printk format for ARRAY_SIZE() 2022-04-15 14:18:29 +02:00
platform platform/x86: ISST: Fix possible circular locking dependency detected 2022-02-23 11:59:55 +01:00
pnp
power power: supply: wm8350-power: Add missing free in free_charger_irq 2022-04-15 14:18:15 +02:00
powercap
pps
ps3
ptp
pwm pwm: lpc18xx-sct: Initialize driver data and hardware before pwmchip_add() 2022-04-15 14:18:17 +02:00
rapidio
ras
regulator regulator: qcom_smd: fix for_each_child.cocci warnings 2022-04-15 14:18:04 +02:00
remoteproc remoteproc: qcom_wcnss: Add missing of_node_put() in wcnss_alloc_memory_region 2022-04-15 14:18:19 +02:00
reset
rpmsg rpmsg: char: Fix race between the release of rpmsg_eptdev and cdev 2022-02-01 17:24:36 +01:00
rtc rtc: wm8350: Handle error for wm8350_register_irq 2022-04-15 14:18:31 +02:00
s390 scsi: zfcp: Fix failed recovery on gone remote port with non-NPIV FCP devices 2022-02-01 17:24:33 +01:00
sbus
scsi scsi: qla2xxx: Use correct feature type field during RFF_ID processing 2022-04-15 14:18:27 +02:00
sfi
sh
siox
slimbus
soc soc: ti: wkup_m3_ipc: Fix IRQ check in wkup_m3_ipc_probe 2022-04-15 14:18:07 +02:00
soundwire
spi spi: tegra20: Use of_device_get_match_data() 2022-04-15 14:18:23 +02:00
spmi
ssb
staging staging: mt7621-dts: fix LEDs and pinctrl on GB-PC1 devicetree 2022-04-15 14:18:19 +02:00
target scsi: target: iscsi: Make sure the np under each tpg is unique 2022-02-16 12:52:48 +01:00
tc
tee optee: use driver internal tee_context for some rpc 2022-03-02 11:41:04 +01:00
thermal thermal: int340x: Increase bitmap size 2022-04-15 14:18:02 +02:00
thunderbolt
tty kgdboc: fix return value of __setup handler 2022-04-15 14:18:20 +02:00
uio
usb USB: storage: ums-realtek: fix error code in rts51x_read_mem() 2022-04-15 14:18:16 +02:00
vfio
vhost vhost/vsock: don't check owner in vhost_vsock_stop() while releasing 2022-03-02 11:41:00 +01:00
video video: fbdev: sm712fb: Fix crash in smtcfb_write() 2022-04-15 14:18:25 +02:00
virt
virtio virtio: acknowledge all features before access 2022-03-16 13:21:48 +01:00
visorbus
vlynq
vme
w1 w1: Misuse of get_user()/put_user() reported by sparse 2022-01-27 09:19:48 +01:00
watchdog
xen xen/gnttab: fix gnttab_end_foreign_access() without page specified 2022-03-11 11:22:39 +01:00
zorro
Kconfig
Makefile