linux/drivers/usb
Nguyen Quang Le Kien b5b02ce657 usb: atm: cxacru: fix use-after-free in cxacru_poll_status
In cxacru_unbind(), cancel_delayed_work_sync() was conditionally skipped
when poll_state was CXPOLL_STOPPED. However, a work item previously
scheduled when poll_state was CXPOLL_POLLING may still be pending in the
workqueue at the time poll_state transitions to CXPOLL_STOPPED. Skipping
cancel_delayed_work_sync() in this case allows the work to fire after
cxacru_data is freed, causing a use-after-free when cxacru_poll_status()
attempts to acquire instance->poll_state_serialize.

Fix this by always calling cancel_delayed_work_sync() regardless of
poll_state, ensuring no pending or in-flight work can access the freed
instance.

Cc: stable+noautosel@kernel.org # untested fix to a driver init path race
Reported-by: syzbot+24eb38c789655fc43663@syzkaller.appspotmail.com
Closes: https://syzkaller.appspot.com/bug?extid=24eb38c789655fc43663
Signed-off-by: Nguyen Quang Le Kien <khiemtranzo532001@gmail.com>
Link: https://patch.msgid.link/20260803101716.2592486-1-khiemtranzo532001@gmail.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2026-08-06 08:33:12 -07:00
..
atm usb: atm: cxacru: fix use-after-free in cxacru_poll_status 2026-08-06 08:33:12 -07:00
c67x00 Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00
cdns3 usb: cdnsp: fix stream context array leak in cdnsp_alloc_stream_info() 2026-06-25 15:12:15 +01:00
chipidea usb: chipidea: fix usage_count leak when autosuspend_delay is negative 2026-07-16 17:12:21 +02:00
class usb: cdc_acm: Add quirk for Uniden BC125AT scanner 2026-06-25 15:10:09 +01:00
common USB: ulpi: fix memory leak on registration failure 2026-06-25 15:11:27 +01:00
core usb: core: sysfs: add lock to bos_descriptors_read() 2026-07-16 17:11:44 +02:00
dwc2 usb: dwc2: Add include defining struct pci_device_id 2026-07-03 07:38:15 +02:00
dwc3 usb: dwc3: run gadget disconnect from sleepable suspend context 2026-07-08 13:35:22 +02:00
early usb: early: xhci-dbc: Fix early_ioremap leak 2025-07-07 11:04:46 +02:00
fotg210 usb: free iso schedules on failed submit 2026-07-08 13:30:38 +02:00
gadget usb: gadget: dummy_hcd: prevent fifo_req reuse during giveback 2026-07-16 17:12:36 +02:00
host usb: xhci-pci: Limit VIA VL805 DMA addressing to 36 bits 2026-07-13 07:10:11 +02:00
image Merge 7.0-rc4 into usb-next 2026-03-16 11:50:48 +01:00
isp1760 Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL uses 2026-02-22 08:26:33 -08:00
misc USB fixes for 7.2-rc3 2026-07-12 12:12:41 -07:00
mon Convert more 'alloc_obj' cases to default GFP_KERNEL arguments 2026-02-21 20:03:00 -08:00
mtu3 usb: mtu3: unmap request DMA on queue failure 2026-06-25 16:04:26 +01:00
musb usb: musb: omap2430: Do not put borrowed of_node in probe 2026-07-16 17:11:35 +02:00
phy usb: phy: isp1301: Use named initializers for struct i2c_device_id 2026-05-21 16:52:36 +02:00
renesas_usbhs usb: renesas_usbhs: use kzalloc_flex 2026-03-18 15:51:48 +01:00
roles usb: roles: get usb role switch from parent only for usb-b-connector 2026-03-11 16:22:22 +01:00
serial USB: serial: io_edgeport: cap received transmit credits 2026-07-22 11:23:54 +02:00
storage USB: storage: add NO_ATA_1X quirk for Longmai USB Key 2026-07-16 17:11:02 +02:00
typec usb: typec: ucsi: Correct teardown ordering in ucsi_init() error path 2026-07-23 10:38:19 +02:00
usbip usbip: vudc: fix NULL deref in vep_dequeue() 2026-07-08 13:29:31 +02:00
Kconfig usb: pci-quirks: handle HAS_IOPORT dependency for AMD quirk 2023-10-02 16:19:12 +02:00
Makefile usb: cdns3: Add USBSSP platform driver support 2026-04-27 05:14:18 -06:00
usb-skeleton.c Convert 'alloc_obj' family to use the new default GFP_KERNEL argument 2026-02-21 17:09:51 -08:00