program: mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./sys\x00', 0x1ff) mount(0x0, &(0x7f0000000000)='./sys\x00', &(0x7f0000000100)='sysfs\x00', 0x0, 0x0) r0 = syz_open_dev$tty1(0xc, 0x4, 0x1) ioctl$VT_RESIZEX(r0, 0x560a, &(0x7f0000000040)={0x1, 0x6, 0x3, 0x0, 0x4, 0xfff}) r1 = openat(0xffffffffffffff9c, &(0x7f0000000200)='./sys/bus/platform/drivers/vhci_hcd/unbind\x00', 0x1, 0x0) write(r1, &(0x7f00000000c0)="766863695f6863642e300007cf883791149068472ec40a7fcb722bd659d2a8611c802caf9af0", 0x26) bind$bt_hci(r1, &(0x7f0000000080)={0x1f, 0x4, 0x2}, 0x6) mkdirat(0xffffffffffffff9c, &(0x7f0000000000)='./sys\x00', 0x1ff) (async) mount(0x0, &(0x7f0000000000)='./sys\x00', &(0x7f0000000100)='sysfs\x00', 0x0, 0x0) (async) syz_open_dev$tty1(0xc, 0x4, 0x1) (async) ioctl$VT_RESIZEX(r0, 0x560a, &(0x7f0000000040)={0x1, 0x6, 0x3, 0x0, 0x4, 0xfff}) (async) openat(0xffffffffffffff9c, &(0x7f0000000200)='./sys/bus/platform/drivers/vhci_hcd/unbind\x00', 0x1, 0x0) (async) write(r1, &(0x7f00000000c0)="766863695f6863642e300007cf883791149068472ec40a7fcb722bd659d2a8611c802caf9af0", 0x26) (async) bind$bt_hci(r1, &(0x7f0000000080)={0x1f, 0x4, 0x2}, 0x6) (async) [ 88.707190][ T4642] Bluetooth: hci0: command tx timeout [ 88.767558][ T5313] vhci_hcd vhci_hcd.0: remove, state 4 [ 88.774742][ T5313] usb usb7: USB disconnect, device number 1 [ 88.822617][ T36] vhci_hcd vhci_hcd.0: stop threads [ 88.825334][ T36] vhci_hcd vhci_hcd.0: release socket [ 88.828119][ T36] vhci_hcd vhci_hcd.0: disconnect device [ 88.834608][ T36] vhci_hcd vhci_hcd.0: stop threads [ 88.836973][ T36] vhci_hcd vhci_hcd.0: release socket [ 88.839720][ T36] vhci_hcd vhci_hcd.0: disconnect device [ 88.847161][ T36] vhci_hcd vhci_hcd.0: stop threads [ 88.853846][ T36] vhci_hcd vhci_hcd.0: release socket [ 88.856366][ T5313] vhci_hcd vhci_hcd.0: USB bus 7 deregistered [ 88.859239][ T36] vhci_hcd vhci_hcd.0: disconnect device [ 88.862621][ T36] vhci_hcd vhci_hcd.0: stop threads [ 88.864850][ T36] vhci_hcd vhci_hcd.0: release socket [ 88.868871][ T36] vhci_hcd vhci_hcd.0: disconnect device [ 88.876019][ T36] vhci_hcd vhci_hcd.0: stop threads [ 88.882865][ T5313] vhci_hcd vhci_hcd.0: remove, state 4 [ 88.885136][ T36] ================================================================== [ 88.888727][ T36] BUG: KASAN: slab-use-after-free in vhci_shutdown_connection+0x1d4/0x650 [ 88.893388][ T36] Read of size 8 at addr ffff888035008e70 by task kworker/u4:2/36 [ 88.897577][ T36] [ 88.898874][ T36] CPU: 0 UID: 0 PID: 36 Comm: kworker/u4:2 Not tainted syzkaller #0 PREEMPT(full) [ 88.898888][ T36] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 88.898898][ T36] Workqueue: usbip_event event_handler [ 88.898916][ T36] Call Trace: [ 88.898923][ T36] [ 88.898929][ T36] dump_stack_lvl+0xe8/0x150 [ 88.898947][ T36] print_address_description+0x55/0x1e0 [ 88.898962][ T36] ? vhci_shutdown_connection+0x1d4/0x650 [ 88.898973][ T36] print_report+0x58/0x70 [ 88.898987][ T36] kasan_report+0x117/0x150 [ 88.899000][ T36] ? vhci_shutdown_connection+0x1d4/0x650 [ 88.899014][ T36] vhci_shutdown_connection+0x1d4/0x650 [ 88.899028][ T36] event_handler+0x2a4/0x4b0 [ 88.899038][ T36] ? process_scheduled_works+0x97a/0x1630 [ 88.899051][ T36] process_scheduled_works+0xc3d/0x1630 [ 88.899070][ T36] ? __pfx_process_scheduled_works+0x10/0x10 [ 88.899084][ T36] ? assign_work+0x3cf/0x5d0 [ 88.899104][ T36] worker_thread+0xa47/0xfb0 [ 88.899122][ T36] kthread+0x38b/0x480 [ 88.899138][ T36] ? __pfx_worker_thread+0x10/0x10 [ 88.899149][ T36] ? __pfx_kthread+0x10/0x10 [ 88.899163][ T36] ret_from_fork+0x514/0xb70 [ 88.899180][ T36] ? __pfx_ret_from_fork+0x10/0x10 [ 88.899194][ T36] ? __switch_to+0xc89/0x1420 [ 88.899208][ T36] ? __pfx_kthread+0x10/0x10 [ 88.899222][ T36] ret_from_fork_asm+0x1a/0x30 [ 88.899240][ T36] [ 88.899244][ T36] [ 88.965630][ T36] Allocated by task 1: [ 88.967594][ T36] kasan_save_track+0x3e/0x80 [ 88.969647][ T36] __kasan_kmalloc+0x93/0xb0 [ 88.971633][ T36] __kmalloc_noprof+0x379/0x720 [ 88.973725][ T36] __usb_create_hcd+0x67/0x900 [ 88.975751][ T36] vhci_hcd_probe+0x1e6/0x3e0 [ 88.977770][ T36] platform_probe+0xf9/0x190 [ 88.979831][ T36] really_probe+0x254/0xae0 [ 88.981842][ T36] __driver_probe_device+0x1e8/0x360 [ 88.984147][ T36] driver_probe_device+0x4f/0x240 [ 88.986420][ T36] __device_attach_driver+0x270/0x410 [ 88.988953][ T36] bus_for_each_drv+0x258/0x2f0 [ 88.991077][ T36] __device_attach+0x2c4/0x450 [ 88.993177][ T36] device_initial_probe+0xa1/0xd0 [ 88.995473][ T36] bus_probe_device+0x12a/0x220 [ 88.997634][ T36] device_add+0x7d7/0xb80 [ 88.999594][ T36] platform_device_add+0x4bd/0x860 [ 89.001892][ T36] platform_device_register_full+0x53a/0x620 [ 89.004526][ T36] vhci_hcd_init+0x227/0x360 [ 89.006647][ T36] do_one_initcall+0x250/0x870 [ 89.008583][ T36] do_initcall_level+0x10a/0x1a0 [ 89.010296][ T36] do_initcalls+0x59/0xa0 [ 89.012154][ T36] kernel_init_freeable+0x29d/0x3e0 [ 89.014407][ T36] kernel_init+0x22/0x1d0 [ 89.016314][ T36] ret_from_fork+0x514/0xb70 [ 89.018310][ T36] ret_from_fork_asm+0x1a/0x30 [ 89.020323][ T36] [ 89.021377][ T36] Freed by task 5313: [ 89.023133][ T36] kasan_save_track+0x3e/0x80 [ 89.025181][ T36] kasan_save_free_info+0x40/0x50 [ 89.027371][ T36] __kasan_slab_free+0x5c/0x80 [ 89.029405][ T36] kfree+0x1c5/0x640 [ 89.031108][ T36] vhci_hcd_remove+0x9e/0x110 [ 89.033167][ T36] device_release_driver_internal+0x48b/0x880 [ 89.035731][ T36] unbind_store+0x1a1/0x1d0 [ 89.037700][ T36] kernfs_fop_write_iter+0x3a4/0x540 [ 89.039779][ T36] vfs_write+0x612/0xba0 [ 89.041238][ T36] ksys_write+0x150/0x270 [ 89.042824][ T36] do_syscall_64+0x166/0x520 [ 89.044387][ T36] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 89.046400][ T36] [ 89.047218][ T36] Last potentially related work creation: [ 89.049161][ T36] kasan_save_stack+0x3e/0x60 [ 89.050776][ T36] kasan_record_aux_stack+0xbd/0xd0 [ 89.052575][ T36] insert_work+0x3d/0x330 [ 89.054060][ T36] __queue_work+0xd07/0x10d0 [ 89.055649][ T36] queue_work_on+0x106/0x1d0 [ 89.057271][ T36] unlink1+0x344/0x3e0 [ 89.058671][ T36] usb_hcd_unlink_urb+0xe6/0x1e0 [ 89.060386][ T36] usb_kill_urb+0x10b/0x2f0 [ 89.061970][ T36] hub_quiesce+0x211/0x330 [ 89.063396][ T36] hub_suspend+0x904/0xad0 [ 89.064831][ T36] usb_suspend_both+0x285/0x1040 [ 89.066408][ T36] usb_runtime_suspend+0x58/0x110 [ 89.067993][ T36] __rpm_callback+0x2c7/0x950 [ 89.069546][ T36] rpm_suspend+0x89d/0x17a0 [ 89.071129][ T36] __pm_runtime_suspend+0x12f/0x1a0 [ 89.073003][ T36] usb_new_device+0xaee/0x1690 [ 89.074616][ T36] register_root_hub+0x250/0x5c0 [ 89.076248][ T36] usb_add_hcd+0xac7/0xf80 [ 89.077812][ T36] vhci_hcd_probe+0x1fa/0x3e0 [ 89.079423][ T36] platform_probe+0xf9/0x190 [ 89.081232][ T36] really_probe+0x254/0xae0 [ 89.083049][ T36] __driver_probe_device+0x1e8/0x360 [ 89.085209][ T36] driver_probe_device+0x4f/0x240 [ 89.087284][ T36] __device_attach_driver+0x270/0x410 [ 89.089490][ T36] bus_for_each_drv+0x258/0x2f0 [ 89.091492][ T36] __device_attach+0x2c4/0x450 [ 89.093636][ T36] device_initial_probe+0xa1/0xd0 [ 89.096054][ T36] bus_probe_device+0x12a/0x220 [ 89.098259][ T36] device_add+0x7d7/0xb80 [ 89.100126][ T36] platform_device_add+0x4bd/0x860 [ 89.102402][ T36] platform_device_register_full+0x53a/0x620 [ 89.105020][ T36] vhci_hcd_init+0x227/0x360 [ 89.107032][ T36] do_one_initcall+0x250/0x870 [ 89.109163][ T36] do_initcall_level+0x10a/0x1a0 [ 89.111324][ T36] do_initcalls+0x59/0xa0 [ 89.113232][ T36] kernel_init_freeable+0x29d/0x3e0 [ 89.115273][ T36] kernel_init+0x22/0x1d0 [ 89.116968][ T36] ret_from_fork+0x514/0xb70 [ 89.118982][ T36] ret_from_fork_asm+0x1a/0x30 [ 89.121031][ T36] [ 89.122094][ T36] Second to last potentially related work creation: [ 89.124790][ T36] kasan_save_stack+0x3e/0x60 [ 89.126764][ T36] kasan_record_aux_stack+0xbd/0xd0 [ 89.128925][ T36] insert_work+0x3d/0x330 [ 89.130708][ T36] __queue_work+0xd07/0x10d0 [ 89.132692][ T36] queue_work_on+0x106/0x1d0 [ 89.134614][ T36] usb_hcd_submit_urb+0xa3b/0x1b60 [ 89.136890][ T36] usb_start_wait_urb+0x13f/0x5b0 [ 89.139017][ T36] usb_control_msg+0x234/0x3e0 [ 89.141161][ T36] hub_suspend+0x891/0xad0 [ 89.143229][ T36] usb_suspend_both+0x285/0x1040 [ 89.145404][ T36] usb_runtime_suspend+0x58/0x110 [ 89.147216][ T36] __rpm_callback+0x2c7/0x950 [ 89.148981][ T36] rpm_suspend+0x89d/0x17a0 [ 89.150562][ T36] __pm_runtime_suspend+0x12f/0x1a0 [ 89.152408][ T36] usb_new_device+0xaee/0x1690 [ 89.154073][ T36] register_root_hub+0x250/0x5c0 [ 89.155779][ T36] usb_add_hcd+0xac7/0xf80 [ 89.157296][ T36] vhci_hcd_probe+0x1fa/0x3e0 [ 89.158925][ T36] platform_probe+0xf9/0x190 [ 89.160511][ T36] really_probe+0x254/0xae0 [ 89.162094][ T36] __driver_probe_device+0x1e8/0x360 [ 89.163853][ T36] driver_probe_device+0x4f/0x240 [ 89.165527][ T36] __device_attach_driver+0x270/0x410 [ 89.167339][ T36] bus_for_each_drv+0x258/0x2f0 [ 89.169043][ T36] __device_attach+0x2c4/0x450 [ 89.170686][ T36] device_initial_probe+0xa1/0xd0 [ 89.172559][ T36] bus_probe_device+0x12a/0x220 [ 89.174244][ T36] device_add+0x7d7/0xb80 [ 89.175650][ T36] platform_device_add+0x4bd/0x860 [ 89.177318][ T36] platform_device_register_full+0x53a/0x620 [ 89.179348][ T36] vhci_hcd_init+0x227/0x360 [ 89.181094][ T36] do_one_initcall+0x250/0x870 [ 89.183044][ T36] do_initcall_level+0x10a/0x1a0 [ 89.185100][ T36] do_initcalls+0x59/0xa0 [ 89.186920][ T36] kernel_init_freeable+0x29d/0x3e0 [ 89.188970][ T36] kernel_init+0x22/0x1d0 [ 89.190790][ T36] ret_from_fork+0x514/0xb70 [ 89.192631][ T36] ret_from_fork_asm+0x1a/0x30 [ 89.194680][ T36] [ 89.195729][ T36] The buggy address belongs to the object at ffff888035008000 [ 89.195729][ T36] which belongs to the cache kmalloc-8k of size 8192 [ 89.201577][ T36] The buggy address is located 3696 bytes inside of [ 89.201577][ T36] freed 8192-byte region [ffff888035008000, ffff88803500a000) [ 89.207296][ T36] [ 89.208444][ T36] The buggy address belongs to the physical page: [ 89.211167][ T36] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x35008 [ 89.214720][ T36] head: order:3 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0 [ 89.218126][ T36] flags: 0x4fff00000000040(head|node=1|zone=1|lastcpupid=0x7ff) [ 89.220901][ T36] page_type: f5(slab) [ 89.222452][ T36] raw: 04fff00000000040 ffff88801b042280 dead000000000122 0000000000000000 [ 89.225417][ T36] raw: 0000000000000000 0000000800020002 00000000f5000000 0000000000000000 [ 89.228745][ T36] head: 04fff00000000040 ffff88801b042280 dead000000000122 0000000000000000 [ 89.232351][ T36] head: 0000000000000000 0000000800020002 00000000f5000000 0000000000000000 [ 89.236017][ T36] head: 04fff00000000003 fffffffffffffe01 00000000ffffffff 00000000ffffffff [ 89.239683][ T36] head: ffffffffffffffff 0000000000000000 00000000ffffffff 0000000000000008 [ 89.243321][ T36] page dumped because: kasan: bad access detected [ 89.246019][ T36] page_owner tracks the page as allocated [ 89.248378][ T36] page last allocated via order 3, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 1, tgid 1 (swapper/0), ts 16156293153 [ 89.255628][ T36] post_alloc_hook+0x1f9/0x250 [ 89.257658][ T36] get_page_from_freelist+0x2209/0x2280 [ 89.259905][ T36] __alloc_frozen_pages_noprof+0x217/0x5a0 [ 89.262335][ T36] allocate_slab+0x7c/0x5e0 [ 89.264232][ T36] refill_objects+0x2d5/0x350 [ 89.266228][ T36] __pcs_replace_empty_main+0x2c3/0x6b0 [ 89.268480][ T36] __kmalloc_noprof+0x489/0x720 [ 89.270463][ T36] __usb_create_hcd+0x67/0x900 [ 89.272145][ T36] vhci_hcd_probe+0x104/0x3e0 [ 89.273753][ T36] platform_probe+0xf9/0x190 [ 89.275376][ T36] really_probe+0x254/0xae0 [ 89.277138][ T36] __driver_probe_device+0x1e8/0x360 [ 89.279043][ T36] driver_probe_device+0x4f/0x240 [ 89.280873][ T36] __device_attach_driver+0x270/0x410 [ 89.283036][ T36] bus_for_each_drv+0x258/0x2f0 [ 89.284791][ T36] __device_attach+0x2c4/0x450 [ 89.286573][ T36] page last free pid 1 tgid 1 ts 16144498942 stack trace: [ 89.289067][ T36] __free_frozen_pages+0xc93/0xd90 [ 89.291028][ T36] __slab_free+0x274/0x2c0 [ 89.292857][ T36] qlist_free_all+0x99/0x100 [ 89.294635][ T36] kasan_quarantine_reduce+0x148/0x160 [ 89.296572][ T36] __kasan_slab_alloc+0x22/0x80 [ 89.298340][ T36] __kmalloc_cache_noprof+0x2af/0x660 [ 89.300621][ T36] apply_wqattrs_prepare+0x124/0xdc0 [ 89.302712][ T36] __alloc_workqueue+0x103f/0x1fe0 [ 89.304667][ T36] alloc_workqueue_noprof+0xe3/0x210 [ 89.306467][ T36] tty_register_driver+0x2f0/0xdf0 [ 89.308397][ T36] userial_init+0x17c/0x280 [ 89.310236][ T36] do_one_initcall+0x250/0x870 [ 89.312311][ T36] do_initcall_level+0x10a/0x1a0 [ 89.314370][ T36] do_initcalls+0x59/0xa0 [ 89.316193][ T36] kernel_init_freeable+0x29d/0x3e0 [ 89.318335][ T36] kernel_init+0x22/0x1d0 [ 89.320087][ T36] [ 89.321164][ T36] Memory state around the buggy address: [ 89.323586][ T36] ffff888035008d00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 89.327011][ T36] ffff888035008d80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 89.330408][ T36] >ffff888035008e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 89.333834][ T36] ^ [ 89.336998][ T36] ffff888035008e80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 89.340118][ T36] ffff888035008f00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 89.343327][ T36] ================================================================== [ 89.347287][ T5313] usb usb6: USB disconnect, device number 1 [ 89.416631][ T5313] vhci_hcd vhci_hcd.0: USB bus 6 deregistered