================================================================== BUG: KASAN: slab-out-of-bounds in destroy_workqueue+0x93e/0xa00 Read of size 8 at addr ffff8880187e2ffd by task syz-executor.5/4023 CPU: 1 UID: 0 PID: 4023 Comm: syz-executor.5 Tainted: G W 6.17.0-rc3-next-20250829 #1 PREEMPT(voluntary) Tainted: [W]=WARN Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 Call Trace: dump_stack_lvl+0xca/0x120 print_report+0xcb/0x610 kasan_report+0xca/0x100 destroy_workqueue+0x93e/0xa00 lo_free_disk+0x6b/0xb0 disk_release+0x25d/0x420 device_release+0xa6/0x240 kobject_put+0x162/0x260 put_device+0x1f/0x30 put_disk+0x48/0x60 loop_control_ioctl+0x4d9/0x640 __x64_sys_ioctl+0x18f/0x210 do_syscall_64+0xbf/0x360 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f41c9de5b19 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f41c735b188 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f41c9ef8f60 RCX: 00007f41c9de5b19 RDX: 0000000000000002 RSI: 0000000000004c81 RDI: 0000000000000005 RBP: 00007f41c9e3ff6d R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffe51882c5f R14: 00007f41c735b300 R15: 0000000000022000 Allocated by task 4011: kasan_save_stack+0x24/0x50 kasan_save_track+0x14/0x30 __kasan_slab_alloc+0x59/0x70 kmem_cache_alloc_node_noprof+0x21a/0x690 alloc_unbound_pwq+0xa51/0xe20 apply_wqattrs_prepare+0x851/0xb60 apply_workqueue_attrs_locked+0x64/0xf0 __alloc_workqueue+0x1065/0x1820 alloc_workqueue_noprof+0xc7/0x200 loop_configure+0xf73/0x1590 lo_ioctl+0x66d/0x1c70 blkdev_ioctl+0x27c/0x6c0 __x64_sys_ioctl+0x18f/0x210 do_syscall_64+0xbf/0x360 entry_SYSCALL_64_after_hwframe+0x77/0x7f Last potentially related work creation: kasan_save_stack+0x24/0x50 kasan_record_aux_stack+0x89/0xa0 kvfree_call_rcu+0x39/0x3e0 pwq_release_workfn+0x41c/0x970 kthread_worker_fn+0x2b5/0xad0 kthread+0x3c8/0x740 ret_from_fork+0x34b/0x430 ret_from_fork_asm+0x1a/0x30 The buggy address belongs to the object at ffff8880187e2d00 which belongs to the cache pool_workqueue of size 512 The buggy address is located 253 bytes to the right of allocated 512-byte region [ffff8880187e2d00, ffff8880187e2f00) The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x187e0 head: order:2 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0 flags: 0x100000000000040(head|node=0|zone=1) page_type: f5(slab) raw: 0100000000000040 ffff888008cc4280 dead000000000122 0000000000000000 raw: 0000000000000000 0000000080150015 00000000f5000000 0000000000000000 head: 0100000000000040 ffff888008cc4280 dead000000000122 0000000000000000 head: 0000000000000000 0000000080150015 00000000f5000000 0000000000000000 head: 0100000000000002 ffffea000061f801 00000000ffffffff 00000000ffffffff head: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000004 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8880187e2e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8880187e2f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc >ffff8880187e2f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff8880187e3000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8880187e3080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ================================================================== Oops: general protection fault, probably for non-canonical address 0xf00115ac00000000: 0000 [#1] SMP KASAN NOPTI KASAN: maybe wild-memory-access in range [0x8008cd6000000000-0x8008cd6000000007] CPU: 1 UID: 0 PID: 4023 Comm: syz-executor.5 Tainted: G B W 6.17.0-rc3-next-20250829 #1 PREEMPT(voluntary) Tainted: [B]=BAD_PAGE, [W]=WARN Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 RIP: 0010:do_raw_spin_lock+0x5e/0x260 Code: ee 74 74 85 48 c1 ed 03 48 c7 44 24 18 00 20 52 81 48 8d 54 05 00 c7 02 f1 f1 f1 f1 c7 42 04 04 f3 f3 f3 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 65 48 8b 0d 9b 0f 32 06 48 89 4c 24 60 31 c9 RSP: 0018:ffff88804961fca8 EFLAGS: 00010017 RAX: dffffc0000000000 RBX: 8008cd6000000000 RCX: 0000000000000000 RDX: 100119ac00000000 RSI: 0000000000000000 RDI: 8008cd6000000004 RBP: 1ffff110092c3f96 R08: 0000000000000001 R09: 0000000000000000 R10: ffffffff8643ac57 R11: 0000000000000001 R12: dffffc0000000000 R13: ffffffff85852560 R14: ffffed100928c739 R15: ffff8880187e2ffd FS: 00007f41c735b700(0000) GS:ffff8880e56dd000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fb93c1b9940 CR3: 00000000456fa000 CR4: 0000000000350ef0 Call Trace: destroy_workqueue+0x5b5/0xa00 lo_free_disk+0x6b/0xb0 disk_release+0x25d/0x420 device_release+0xa6/0x240 kobject_put+0x162/0x260 put_device+0x1f/0x30 put_disk+0x48/0x60 loop_control_ioctl+0x4d9/0x640 __x64_sys_ioctl+0x18f/0x210 do_syscall_64+0xbf/0x360 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f41c9de5b19 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f41c735b188 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f41c9ef8f60 RCX: 00007f41c9de5b19 RDX: 0000000000000002 RSI: 0000000000004c81 RDI: 0000000000000005 RBP: 00007f41c9e3ff6d R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffe51882c5f R14: 00007f41c735b300 R15: 0000000000022000 Modules linked in: ---[ end trace 0000000000000000 ]--- RIP: 0010:do_raw_spin_lock+0x5e/0x260 Code: ee 74 74 85 48 c1 ed 03 48 c7 44 24 18 00 20 52 81 48 8d 54 05 00 c7 02 f1 f1 f1 f1 c7 42 04 04 f3 f3 f3 48 89 fa 48 c1 ea 03 <0f> b6 14 02 48 89 f8 65 48 8b 0d 9b 0f 32 06 48 89 4c 24 60 31 c9 RSP: 0018:ffff88804961fca8 EFLAGS: 00010017 RAX: dffffc0000000000 RBX: 8008cd6000000000 RCX: 0000000000000000 RDX: 100119ac00000000 RSI: 0000000000000000 RDI: 8008cd6000000004 RBP: 1ffff110092c3f96 R08: 0000000000000001 R09: 0000000000000000 R10: ffffffff8643ac57 R11: 0000000000000001 R12: dffffc0000000000 R13: ffffffff85852560 R14: ffffed100928c739 R15: ffff8880187e2ffd FS: 00007f41c735b700(0000) GS:ffff8880e56dd000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007fb93c1b9940 CR3: 00000000456fa000 CR4: 0000000000350ef0 note: syz-executor.5[4023] exited with irqs disabled note: syz-executor.5[4023] exited with preempt_count 1 BUG: sleeping function called from invalid context at ./include/linux/percpu-rwsem.h:51 in_atomic(): 0, irqs_disabled(): 0, non_block: 0, pid: 4023, name: syz-executor.5 preempt_count: 0, expected: 0 RCU nest depth: 1, expected: 0 INFO: lockdep is turned off. CPU: 1 UID: 0 PID: 4023 Comm: syz-executor.5 Tainted: G B D W 6.17.0-rc3-next-20250829 #1 PREEMPT(voluntary) Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 Call Trace: dump_stack_lvl+0xfa/0x120 __might_resched+0x2f3/0x510 exit_signals+0x25/0x940 do_exit+0x2db/0x2970 make_task_dead+0x174/0x3b0 rewind_stack_and_make_dead+0x16/0x20 RIP: 0033:0x7f41c9de5b19 Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 bc ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007f41c735b188 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 00007f41c9ef8f60 RCX: 00007f41c9de5b19 RDX: 0000000000000002 RSI: 0000000000004c81 RDI: 0000000000000005 RBP: 00007f41c9e3ff6d R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007ffe51882c5f R14: 00007f41c735b300 R15: 0000000000022000 kmemleak: Found object by alias at 0x607f1a638f2c CPU: 0 UID: 0 PID: 4030 Comm: syz-executor.6 Tainted: G B D W 6.17.0-rc3-next-20250829 #1 PREEMPT(voluntary) Tainted: [B]=BAD_PAGE, [D]=DIE, [W]=WARN Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.12.0-1 04/01/2014 Call Trace: dump_stack_lvl+0xca/0x120 __lookup_object+0x94/0xb0 delete_object_full+0x27/0x70 free_percpu+0x30/0x1160 futex_hash_free+0x38/0xc0 mmput+0x2d3/0x390 do_exit+0x79d/0x2970 do_group_exit+0xd3/0x2a0 get_signal+0x2315/0x2340 arch_do_signal_or_restart+0x80/0x790 exit_to_user_mode_loop+0x8b/0x110 do_syscall_64+0x2f7/0x360 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f5f4bcdbb19 Code: Unable to access opcode bytes at 0x7f5f4bcdbaef. RSP: 002b:00007f5f49251188 EFLAGS: 00000246 ORIG_RAX: 0000000000000055 RAX: 0000000000000003 RBX: 00007f5f4bdeef60 RCX: 00007f5f4bcdbb19 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 00000000200003c0 RBP: 00007f5f4bd35f6d R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 00007fff2ba9ef9f R14: 00007f5f49251300 R15: 0000000000022000 kmemleak: Object (percpu) 0x607f1a638f28 (size 8): kmemleak: comm "syz-executor.0", pid 4025, jiffies 4294819859 kmemleak: min_count = 1 kmemleak: count = 0 kmemleak: flags = 0x21 kmemleak: checksum = 0 kmemleak: backtrace: pcpu_alloc_noprof+0x87a/0x1170 fib6_nh_init+0x99a/0x1a00 ip6_route_info_create_nh+0x530/0xf80 ip6_route_add.part.0+0x59/0x170 ipv6_route_ioctl+0x418/0x550 inet6_ioctl+0x24f/0x290 sock_do_ioctl+0xd1/0x240 sock_ioctl+0x40d/0x630 __x64_sys_ioctl+0x18f/0x210 do_syscall_64+0xbf/0x360 entry_SYSCALL_64_after_hwframe+0x77/0x7f UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy misc raw-gadget: fail, usb_gadget_register_driver returned -16 UDC core: USB Raw Gadget: couldn't find an available UDC or it's busy misc raw-gadget: fail, usb_gadget_register_driver returned -16 kmemleak: 4 new suspected memory leaks (see /sys/kernel/debug/kmemleak) ---------------- Code disassembly (best guess): 0: ee out %al,(%dx) 1: 74 74 je 0x77 3: 85 48 c1 test %ecx,-0x3f(%rax) 6: ed in (%dx),%eax 7: 03 48 c7 add -0x39(%rax),%ecx a: 44 24 18 rex.R and $0x18,%al d: 00 20 add %ah,(%rax) f: 52 push %rdx 10: 81 48 8d 54 05 00 c7 orl $0xc7000554,-0x73(%rax) 17: 02 f1 add %cl,%dh 19: f1 icebp 1a: f1 icebp 1b: f1 icebp 1c: c7 42 04 04 f3 f3 f3 movl $0xf3f3f304,0x4(%rdx) 23: 48 89 fa mov %rdi,%rdx 26: 48 c1 ea 03 shr $0x3,%rdx * 2a: 0f b6 14 02 movzbl (%rdx,%rax,1),%edx <-- trapping instruction 2e: 48 89 f8 mov %rdi,%rax 31: 65 48 8b 0d 9b 0f 32 mov %gs:0x6320f9b(%rip),%rcx # 0x6320fd4 38: 06 39: 48 89 4c 24 60 mov %rcx,0x60(%rsp) 3e: 31 c9 xor %ecx,%ecx