WSL2-Linux-Kernel/drivers/net/usb
Marcin Kozlowski b416898442 net: usb: aqc111: Fix out-of-bounds accesses in RX fixup
[ Upstream commit afb8e24652 ]

aqc111_rx_fixup() contains several out-of-bounds accesses that can be
triggered by a malicious (or defective) USB device, in particular:

 - The metadata array (desc_offset..desc_offset+2*pkt_count) can be out of bounds,
   causing OOB reads and (on big-endian systems) OOB endianness flips.
 - A packet can overlap the metadata array, causing a later OOB
   endianness flip to corrupt data used by a cloned SKB that has already
   been handed off into the network stack.
 - A packet SKB can be constructed whose tail is far beyond its end,
   causing out-of-bounds heap data to be considered part of the SKB's
   data.

Found doing variant analysis. Tested it with another driver (ax88179_178a), since
I don't have a aqc111 device to test it, but the code looks very similar.

Signed-off-by: Marcin Kozlowski <marcinguy@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2022-04-20 09:34:16 +02:00
..
Kconfig lan78xx: select CRC32 2021-10-15 14:34:35 +01:00
Makefile
aqc111.c net: usb: aqc111: Fix out-of-bounds accesses in RX fixup 2022-04-20 09:34:16 +02:00
aqc111.h
asix.h net: asix: add proper error handling of usb read errors 2022-04-08 14:23:29 +02:00
asix_common.c net: asix: add proper error handling of usb read errors 2022-04-08 14:23:29 +02:00
asix_devices.c net: asix: add proper error handling of usb read errors 2022-04-08 14:23:29 +02:00
ax88172a.c dev_ioctl: split out ndo_eth_ioctl 2021-07-27 20:11:45 +01:00
ax88179_178a.c net: usb: ax88179_178a: Fix out-of-bounds accesses in RX fixup 2022-02-16 12:56:34 +01:00
catc.c
cdc-phonet.c phonet: use siocdevprivate 2021-07-27 20:11:43 +01:00
cdc_eem.c net: cdc_eem: fix tx fixup skb leak 2021-06-17 11:30:25 -07:00
cdc_ether.c USB: zaurus: support another broken Zaurus 2022-03-02 11:47:50 +01:00
cdc_mbim.c net: usb: cdc_mbim: avoid altsetting toggling for Telit FN990 2022-03-08 19:12:31 +01:00
cdc_ncm.c CDC-NCM: avoid overflow in sanity checking 2022-03-02 11:47:51 +01:00
cdc_subset.c
ch9200.c
cx82310_eth.c
dm9601.c dev_ioctl: split out ndo_eth_ioctl 2021-07-27 20:11:45 +01:00
gl620a.c
hso.c net: hso: fix muxed tty registration 2021-09-17 11:19:58 +01:00
huawei_cdc_ncm.c usb: class: cdc-wdm: WWAN framework integration 2021-05-11 16:17:56 -07:00
int51x1.c net: usb: Fix spelling mistakes 2021-06-01 17:05:05 -07:00
ipheth.c ipheth: fix EOVERFLOW in ipheth_rcvbulk_callback 2022-02-05 12:38:58 +01:00
kalmia.c
kaweth.c
lan78xx.c net: usb: lan78xx: add Allied Telesis AT29M2-AF 2021-12-29 12:28:36 +01:00
lan78xx.h
lg-vl600.c net: usb: Fix spelling mistakes 2021-06-01 17:05:05 -07:00
mcs7830.c net: mcs7830: handle usb read errors properly 2022-01-27 11:04:03 +01:00
net1080.c
pegasus.c net: usb: pegasus: Do not drop long Ethernet frames 2022-01-05 12:42:35 +01:00
pegasus.h
plusb.c
qmi_wwan.c net: usb: qmi_wwan: Add support for Dell DW5829e 2022-02-23 12:03:19 +01:00
r8152.c Revert "net: usb: r8152: Add MAC passthrough support for more Lenovo Docks" 2022-01-11 15:35:12 +01:00
r8153_ecm.c
rndis_host.c rndis_host: support Hytera digital radios 2022-01-11 15:35:16 +01:00
rtl8150.c net: usb: use ndo_siocdevprivate 2021-07-27 20:11:43 +01:00
sierra_net.c
smsc75xx.c dev_ioctl: split out ndo_eth_ioctl 2021-07-27 20:11:45 +01:00
smsc75xx.h
smsc95xx.c smsc95xx: Ignore -ENODEV errors when device is unplugged 2022-03-16 14:23:37 +01:00
smsc95xx.h
sr9700.c sr9700: sanity check for packet length 2022-03-02 11:47:50 +01:00
sr9700.h
sr9800.c dev_ioctl: split out ndo_eth_ioctl 2021-07-27 20:11:45 +01:00
sr9800.h
usbnet.c usbnet: fix error return code in usbnet_probe() 2021-10-27 12:06:15 -07:00
zaurus.c USB: zaurus: support another broken Zaurus 2022-03-02 11:47:50 +01:00