[BUG] can: double free in unlink_all_urbs() in ems_usb and usb_8dev

From: Farhad Alemi

Date: Thu Aug 27 2026 - 18:34:33 EST


Hello Marc and Vincent,

While fuzzing Linux 7.1-rc5 with syzkaller, as part of research at ASU's
SEFCOM lab, we hit the crash below. Crash reports can be found here:

https://github.com/farhad-alemi/public_bug_reports/tree/main/100-can-usb-double-free-unlink_all_urbs-ems_usb-usb_8dev/

BUG: KASAN: double-free in unlink_all_urbs+0xc2/0x740
drivers/net/can/usb/ems_usb.c:713
ems_usb_disconnect+0x83/0x130 drivers/net/can/usb/ems_usb.c:1088

BUG: KASAN: double-free in unlink_all_urbs+0xbe/0x660
drivers/net/can/usb/usb_8dev.c:840
usb_8dev_disconnect+0xaf/0xd0 drivers/net/can/usb/usb_8dev.c:1004

Our reproducer.c is available upon request.

Happy to test a patch if that would help.

Regards,