worker_thread+0x96/0xe20 kernel/workqueue.c:2414 kthread+0x326/0x430 kernel/kthread.c:268 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 hso 4-1:0.0: Failed to find BULK IN ep ================================================================== BUG: KASAN: use-after-free in __mutex_lock_common kernel/locking/mutex.c:938 [inline] BUG: KASAN: use-after-free in __mutex_lock+0xf1e/0x1360 kernel/locking/mutex.c:1103 Read of size 8 at addr ffff8881d02be170 by task kworker/0:2/95 CPU: 0 PID: 95 Comm: kworker/0:2 Not tainted 5.7.0-rc1-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: usb_hub_wq hub_event Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0xef/0x16e lib/dump_stack.c:118 print_address_description.constprop.0.cold+0xd3/0x314 mm/kasan/report.c:382 __kasan_report.cold+0x37/0x92 mm/kasan/report.c:511 kasan_report+0x33/0x50 mm/kasan/common.c:625 __mutex_lock_common kernel/locking/mutex.c:938 [inline] __mutex_lock+0xf1e/0x1360 kernel/locking/mutex.c:1103 device_lock include/linux/device.h:768 [inline] device_del+0x9e/0xd30 drivers/base/core.c:2673 device_unregister+0x22/0xc0 drivers/base/core.c:2742 device_destroy+0x96/0xd0 drivers/base/core.c:3321 tty_unregister_device+0x7e/0x1a0 drivers/tty/tty_io.c:3190 hso_serial_tty_unregister drivers/net/usb/hso.c:2232 [inline] hso_create_bulk_serial_device drivers/net/usb/hso.c:2678 [inline] hso_probe.cold+0x6e/0x15a drivers/net/usb/hso.c:2944 usb_probe_interface+0x310/0x800 drivers/usb/core/driver.c:374 really_probe+0x290/0xac0 drivers/base/dd.c:527 driver_probe_device+0x223/0x350 drivers/base/dd.c:701 __device_attach_driver+0x1d1/0x290 drivers/base/dd.c:808 bus_for_each_drv+0x162/0x1e0 drivers/base/bus.c:431 __device_attach+0x21a/0x390 drivers/base/dd.c:874 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:491 device_add+0x1367/0x1c20 drivers/base/core.c:2533 usb_set_configuration+0xed4/0x1850 drivers/usb/core/message.c:2025 usb_generic_driver_probe+0x9d/0xe0 drivers/usb/core/generic.c:241 usb_probe_device+0xd9/0x230 drivers/usb/core/driver.c:272 really_probe+0x290/0xac0 drivers/base/dd.c:527 driver_probe_device+0x223/0x350 drivers/base/dd.c:701 __device_attach_driver+0x1d1/0x290 drivers/base/dd.c:808 bus_for_each_drv+0x162/0x1e0 drivers/base/bus.c:431 __device_attach+0x21a/0x390 drivers/base/dd.c:874 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:491 device_add+0x1367/0x1c20 drivers/base/core.c:2533 usb_new_device.cold+0x552/0xf6e drivers/usb/core/hub.c:2548 hub_port_connect drivers/usb/core/hub.c:5195 [inline] hub_port_connect_change drivers/usb/core/hub.c:5335 [inline] port_event drivers/usb/core/hub.c:5481 [inline] hub_event+0x226d/0x43c0 drivers/usb/core/hub.c:5563 process_one_work+0x965/0x1630 kernel/workqueue.c:2268 worker_thread+0x96/0xe20 kernel/workqueue.c:2414 kthread+0x326/0x430 kernel/kthread.c:268 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 Allocated by task 3512: save_stack+0x1b/0x40 mm/kasan/common.c:49 set_track mm/kasan/common.c:57 [inline] __kasan_kmalloc mm/kasan/common.c:495 [inline] __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:468 kmalloc include/linux/slab.h:555 [inline] kzalloc include/linux/slab.h:669 [inline] tty_register_device_attr+0x1b6/0x6f0 drivers/tty/tty_io.c:3129 hso_serial_common_create+0x113/0x710 drivers/net/usb/hso.c:2266 hso_create_bulk_serial_device drivers/net/usb/hso.c:2648 [inline] hso_probe+0xc93/0x1b7d drivers/net/usb/hso.c:2944 usb_probe_interface+0x310/0x800 drivers/usb/core/driver.c:374 really_probe+0x290/0xac0 drivers/base/dd.c:527 driver_probe_device+0x223/0x350 drivers/base/dd.c:701 __device_attach_driver+0x1d1/0x290 drivers/base/dd.c:808 bus_for_each_drv+0x162/0x1e0 drivers/base/bus.c:431 __device_attach+0x21a/0x390 drivers/base/dd.c:874 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:491 device_add+0x1367/0x1c20 drivers/base/core.c:2533 usb_set_configuration+0xed4/0x1850 drivers/usb/core/message.c:2025 usb_generic_driver_probe+0x9d/0xe0 drivers/usb/core/generic.c:241 usb_probe_device+0xd9/0x230 drivers/usb/core/driver.c:272 really_probe+0x290/0xac0 drivers/base/dd.c:527 driver_probe_device+0x223/0x350 drivers/base/dd.c:701 __device_attach_driver+0x1d1/0x290 drivers/base/dd.c:808 bus_for_each_drv+0x162/0x1e0 drivers/base/bus.c:431 __device_attach+0x21a/0x390 drivers/base/dd.c:874 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:491 device_add+0x1367/0x1c20 drivers/base/core.c:2533 usb_new_device.cold+0x552/0xf6e drivers/usb/core/hub.c:2548 hub_port_connect drivers/usb/core/hub.c:5195 [inline] hub_port_connect_change drivers/usb/core/hub.c:5335 [inline] port_event drivers/usb/core/hub.c:5481 [inline] hub_event+0x226d/0x43c0 drivers/usb/core/hub.c:5563 process_one_work+0x965/0x1630 kernel/workqueue.c:2268 worker_thread+0x96/0xe20 kernel/workqueue.c:2414 kthread+0x326/0x430 kernel/kthread.c:268 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 Freed by task 3512: save_stack+0x1b/0x40 mm/kasan/common.c:49 set_track mm/kasan/common.c:57 [inline] kasan_set_free_info mm/kasan/common.c:317 [inline] __kasan_slab_free+0x117/0x160 mm/kasan/common.c:456 slab_free_hook mm/slub.c:1445 [inline] slab_free_freelist_hook mm/slub.c:1478 [inline] slab_free mm/slub.c:3035 [inline] kfree+0xd5/0x300 mm/slub.c:4003 device_release+0x71/0x200 drivers/base/core.c:1375 kobject_cleanup lib/kobject.c:693 [inline] kobject_release lib/kobject.c:722 [inline] kref_put include/linux/kref.h:65 [inline] kobject_put+0x256/0x550 lib/kobject.c:739 put_device drivers/base/core.c:2632 [inline] device_unregister+0x34/0xc0 drivers/base/core.c:2743 device_destroy+0x96/0xd0 drivers/base/core.c:3321 tty_unregister_device+0x7e/0x1a0 drivers/tty/tty_io.c:3190 hso_serial_tty_unregister drivers/net/usb/hso.c:2232 [inline] hso_create_bulk_serial_device drivers/net/usb/hso.c:2678 [inline] hso_probe.cold+0x6e/0x15a drivers/net/usb/hso.c:2944 usb_probe_interface+0x310/0x800 drivers/usb/core/driver.c:374 really_probe+0x290/0xac0 drivers/base/dd.c:527 driver_probe_device+0x223/0x350 drivers/base/dd.c:701 __device_attach_driver+0x1d1/0x290 drivers/base/dd.c:808 bus_for_each_drv+0x162/0x1e0 drivers/base/bus.c:431 __device_attach+0x21a/0x390 drivers/base/dd.c:874 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:491 device_add+0x1367/0x1c20 drivers/base/core.c:2533 usb_set_configuration+0xed4/0x1850 drivers/usb/core/message.c:2025 usb_generic_driver_probe+0x9d/0xe0 drivers/usb/core/generic.c:241 usb_probe_device+0xd9/0x230 drivers/usb/core/driver.c:272 really_probe+0x290/0xac0 drivers/base/dd.c:527 driver_probe_device+0x223/0x350 drivers/base/dd.c:701 __device_attach_driver+0x1d1/0x290 drivers/base/dd.c:808 bus_for_each_drv+0x162/0x1e0 drivers/base/bus.c:431 __device_attach+0x21a/0x390 drivers/base/dd.c:874 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:491 device_add+0x1367/0x1c20 drivers/base/core.c:2533 usb_new_device.cold+0x552/0xf6e drivers/usb/core/hub.c:2548 hub_port_connect drivers/usb/core/hub.c:5195 [inline] hub_port_connect_change drivers/usb/core/hub.c:5335 [inline] port_event drivers/usb/core/hub.c:5481 [inline] hub_event+0x226d/0x43c0 drivers/usb/core/hub.c:5563 process_one_work+0x965/0x1630 kernel/workqueue.c:2268 worker_thread+0x96/0xe20 kernel/workqueue.c:2414 kthread+0x326/0x430 kernel/kthread.c:268 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352 The buggy address belongs to the object at ffff8881d02be000 which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 368 bytes inside of 2048-byte region [ffff8881d02be000, ffff8881d02be800) The buggy address belongs to the page: page:ffffea000740ae00 refcount:1 mapcount:0 mapping:0000000001e0472d index:0x0 head:ffffea000740ae00 order:3 compound_mapcount:0 compound_pincount:0 flags: 0x200000000010200(slab|head) raw: 0200000000010200 dead000000000100 dead000000000122 ffff8881da00c000 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8881d02be000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881d02be080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff8881d02be100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff8881d02be180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff8881d02be200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================