program: r0 = bpf$MAP_CREATE(0x0, &(0x7f0000000580)=ANY=[@ANYBLOB="0500000004000000040000000400000000000000", @ANYRES32, @ANYBLOB="0000000000000000000000000000000000000002", @ANYRES32=0x0, @ANYRES32, @ANYBLOB='\x00'/28], 0x48) bpf$PROG_LOAD(0x5, &(0x7f0000002c40)={0x15, 0x17, &(0x7f0000000440)=ANY=[@ANYBLOB="18000000fcff1f0000000000000000001811000063e9d00835f8aba5cda9010a6bd925e70758a37bb0f665b3728b0acb18c6f3a9942f87a6494ca94e", @ANYRES32=r0, @ANYBLOB="0000000000000000b702000014000000b7030000000000008500000005000000bf0900000000000066090600000003e70400000006000000180100002020702500000000002020207b9af8ff00000000ac9100000000000037010000f8ffffffb702000008000000b70300000000000014000000060000005d93000000000000b5030200000000008500000044000000b7000000000000009500000000000000"], &(0x7f0000000040)='GPL\x00', 0x0, 0x0, 0x0, 0x0, 0x0, '\x00', 0x0, @fallback, 0xffffffffffffffff, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}, 0x94) r1 = socket$tipc(0x1e, 0x2, 0x0) r2 = syz_open_dev$dri(&(0x7f0000000080), 0x1, 0x0) ioctl$DRM_IOCTL_SET_CLIENT_CAP(r2, 0x4010640d, &(0x7f0000000000)={0x3, 0x2}) ioctl$DRM_IOCTL_MODE_GETPLANERESOURCES(r2, 0xc01064b5, &(0x7f0000000140)={&(0x7f0000000100)=[0x0], 0x1}) ioctl$DRM_IOCTL_MODE_GETPLANE(r2, 0xc02064b6, &(0x7f00000001c0)={r3, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0}) ioctl$DRM_IOCTL_MODE_OBJ_GETPROPERTIES(r2, 0xc02064b9, &(0x7f00000002c0)={&(0x7f0000000240)=[0x0, 0x0, 0x0], &(0x7f0000000040), 0x3, r4}) ioctl$DRM_IOCTL_MODE_GETFB(r2, 0xc01c64ad, &(0x7f0000000280)={r5}) ioctl$DRM_IOCTL_MODE_ATOMIC(r2, 0xc03864bc, &(0x7f0000000580)={0x601, 0x1, &(0x7f0000000180)=[r4], &(0x7f0000000400)=[0x3], &(0x7f0000000640)=[r7, r6, r6], &(0x7f0000000340), 0x0, 0xffffffffffffffff}) ioctl$DRM_IOCTL_MODE_CREATEPROPBLOB(r2, 0xc01064bd, &(0x7f0000000200)={&(0x7f00000000c0)="53133f8205ffabd1205e66b501b202d19fe8d5eacd33367176e9392ccbaae8be75a361b65bc483d68acf3480af49aa616481a847953e58ab6404a4c11f9493", 0x3f}) r8 = socket$tipc(0x1e, 0x5, 0x0) fcntl$getown(r0, 0x9) setsockopt$TIPC_GROUP_JOIN(r8, 0x10f, 0x87, &(0x7f0000000300)={0x20000043, 0x1004, 0x2, 0x3}, 0x10) bind$tipc(r1, &(0x7f0000000340)=@nameseq={0x1e, 0x1, 0x3, {0x43, 0x0, 0x3}}, 0x10) arch_prctl$ARCH_SET_CPUID(0x1012, 0x1) [ 103.856006][ T4642] Bluetooth: hci0: command tx timeout [ 104.145635][ T176] ================================================================== [ 104.150171][ T176] BUG: KASAN: slab-use-after-free in drm_atomic_helper_wait_for_vblanks+0x317/0x8f0 [ 104.154896][ T176] Read of size 1 at addr ffff88801d0e3c09 by task kworker/u4:6/176 [ 104.159036][ T176] [ 104.160373][ T176] CPU: 0 UID: 0 PID: 176 Comm: kworker/u4:6 Not tainted syzkaller #0 PREEMPT(full) [ 104.160394][ T176] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014 [ 104.160404][ T176] Workqueue: events_unbound commit_work [ 104.160431][ T176] Call Trace: [ 104.160440][ T176] [ 104.160446][ T176] dump_stack_lvl+0xe8/0x150 [ 104.160467][ T176] print_address_description+0x55/0x1e0 [ 104.160491][ T176] ? drm_atomic_helper_wait_for_vblanks+0x317/0x8f0 [ 104.160510][ T176] print_report+0x58/0x70 [ 104.160521][ T176] kasan_report+0x117/0x150 [ 104.160533][ T176] ? drm_atomic_helper_wait_for_vblanks+0x317/0x8f0 [ 104.160547][ T176] drm_atomic_helper_wait_for_vblanks+0x317/0x8f0 [ 104.160560][ T176] ? preempt_schedule_thunk+0x16/0x40 [ 104.160570][ T176] ? __pfx_drm_atomic_helper_wait_for_vblanks+0x10/0x10 [ 104.160583][ T176] ? _raw_spin_unlock_irqrestore+0x74/0x80 [ 104.160703][ T176] ? drm_atomic_helper_commit_hw_done+0x3da/0x410 [ 104.160718][ T176] drm_atomic_helper_commit_tail+0x2e9/0x510 [ 104.160733][ T176] commit_tail+0x2b1/0x3c0 [ 104.160747][ T176] ? process_scheduled_works+0xa20/0x14e0 [ 104.160763][ T176] process_scheduled_works+0xa8e/0x14e0 [ 104.160789][ T176] ? __pfx_process_scheduled_works+0x10/0x10 [ 104.160806][ T176] ? assign_work+0x3cf/0x5d0 [ 104.160821][ T176] worker_thread+0xa47/0xfb0 [ 104.160843][ T176] kthread+0x388/0x470 [ 104.160860][ T176] ? __pfx_worker_thread+0x10/0x10 [ 104.160873][ T176] ? __pfx_kthread+0x10/0x10 [ 104.160891][ T176] ret_from_fork+0x514/0xb70 [ 104.160917][ T176] ? __pfx_ret_from_fork+0x10/0x10 [ 104.160934][ T176] ? __switch_to+0xc89/0x1420 [ 104.160951][ T176] ? __pfx_kthread+0x10/0x10 [ 104.160969][ T176] ret_from_fork_asm+0x1a/0x30 [ 104.160993][ T176] [ 104.160998][ T176] [ 104.248888][ T176] Allocated by task 5312: [ 104.251163][ T176] kasan_save_track+0x3e/0x80 [ 104.253740][ T176] __kasan_kmalloc+0x93/0xb0 [ 104.256046][ T176] __kmalloc_cache_noprof+0x32d/0x660 [ 104.258599][ T176] drm_atomic_helper_crtc_duplicate_state+0x72/0xb0 [ 104.261582][ T176] drm_atomic_get_crtc_state+0x1b3/0x570 [ 104.264361][ T176] drm_atomic_set_property+0x17b/0x3fb0 [ 104.267048][ T176] drm_mode_atomic_ioctl+0x80c/0x24b0 [ 104.269702][ T176] drm_ioctl_kernel+0x2df/0x3b0 [ 104.271997][ T176] drm_ioctl+0x70e/0xba0 [ 104.274036][ T176] __se_sys_ioctl+0xfc/0x170 [ 104.276312][ T176] do_syscall_64+0x174/0x580 [ 104.278631][ T176] entry_SYSCALL_64_after_hwframe+0x77/0x7f [ 104.281697][ T176] [ 104.283120][ T176] Freed by task 1390: [ 104.285120][ T176] kasan_save_track+0x3e/0x80 [ 104.287425][ T176] kasan_save_free_info+0x40/0x50 [ 104.289756][ T176] __kasan_slab_free+0x5c/0x80 [ 104.291970][ T176] kfree+0x1c5/0x640 [ 104.293979][ T176] drm_atomic_commit_default_clear+0x47f/0xf00 [ 104.297140][ T176] __drm_atomic_commit_free+0xb4/0x230 [ 104.299909][ T176] drm_atomic_helper_dirtyfb+0xee3/0xfd0 [ 104.302694][ T176] drm_fbdev_shmem_helper_fb_dirty+0x160/0x310 [ 104.305689][ T176] drm_fb_helper_damage_work+0x84c/0xf20 [ 104.308400][ T176] process_scheduled_works+0xa8e/0x14e0 [ 104.311018][ T176] worker_thread+0xa47/0xfb0 [ 104.313329][ T176] kthread+0x388/0x470 [ 104.315305][ T176] ret_from_fork+0x514/0xb70 [ 104.317877][ T176] ret_from_fork_asm+0x1a/0x30 [ 104.320355][ T176] [ 104.321645][ T176] The buggy address belongs to the object at ffff88801d0e3c00 [ 104.321645][ T176] which belongs to the cache kmalloc-512 of size 512 [ 104.328688][ T176] The buggy address is located 9 bytes inside of [ 104.328688][ T176] freed 512-byte region [ffff88801d0e3c00, ffff88801d0e3e00) [ 104.335292][ T176] [ 104.336619][ T176] The buggy address belongs to the physical page: [ 104.340096][ T176] page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1d0e2 [ 104.344292][ T176] head: order:1 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0 [ 104.348278][ T176] flags: 0xfff00000000040(head|node=0|zone=1|lastcpupid=0x7ff) [ 104.352098][ T176] page_type: f5(slab) [ 104.354129][ T176] raw: 00fff00000000040 ffff88801b041c80 dead000000000100 dead000000000122 [ 104.358644][ T176] raw: 0000000000000000 0000000800080008 00000000f5000000 0000000000000000 [ 104.363696][ T176] head: 00fff00000000040 ffff88801b041c80 dead000000000100 dead000000000122 [ 104.369032][ T176] head: 0000000000000000 0000000800080008 00000000f5000000 0000000000000000 [ 104.373072][ T176] head: 00fff00000000001 ffffffffffffff81 00000000ffffffff 00000000ffffffff [ 104.379399][ T176] head: ffffffffffffffff 0000000000000000 00000000ffffffff 0000000000000002 [ 104.383354][ T176] page dumped because: kasan: bad access detected [ 104.386485][ T176] page_owner tracks the page as allocated [ 104.389137][ T176] page last allocated via order 1, migratetype Unmovable, gfp_mask 0xd20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 5276, tgid 5276 (syz-executor), ts 101338121057, free_ts 100795975343 [ 104.399000][ T176] post_alloc_hook+0x1f9/0x250 [ 104.401373][ T176] get_page_from_freelist+0x21fa/0x2270 [ 104.403988][ T176] __alloc_frozen_pages_noprof+0x18d/0x380 [ 104.406819][ T176] allocate_slab+0x79/0x5e0 [ 104.408975][ T176] refill_objects+0x2d5/0x350 [ 104.411287][ T176] __pcs_replace_empty_main+0x2bf/0x6b0 [ 104.414066][ T176] __kmalloc_flags_noprof+0x5be/0x800 [ 104.417203][ T176] alloc_slab_obj_exts+0x4d/0x170 [ 104.420401][ T176] __memcg_slab_post_alloc_hook+0x5d3/0xf10 [ 104.424289][ T176] __kmalloc_noprof+0x3de/0x720 [ 104.427388][ T176] security_prepare_creds+0x52/0x360 [ 104.430293][ T176] prepare_creds+0x57d/0x820 [ 104.433011][ T176] copy_creds+0x109/0x9f0 [ 104.435157][ T176] copy_process+0xd1f/0x4390 [ 104.437563][ T176] kernel_clone+0x2d7/0x940 [ 104.439758][ T176] __x64_sys_clone+0x1b6/0x230 [ 104.441865][ T176] page last free pid 75 tgid 75 stack trace: [ 104.444773][ T176] free_unref_folios+0xd84/0x14a0 [ 104.447833][ T176] shrink_folio_list+0x4b16/0x5330 [ 104.451138][ T176] evict_folios+0x3821/0x49e0 [ 104.453814][ T176] try_to_shrink_lruvec+0xb4f/0xed0 [ 104.456537][ T176] shrink_one+0x233/0x730 [ 104.458899][ T176] shrink_node+0x3303/0x3b60 [ 104.461478][ T176] kswapd+0x17b6/0x31c0 [ 104.463731][ T176] kthread+0x388/0x470 [ 104.465675][ T176] ret_from_fork+0x514/0xb70 [ 104.467992][ T176] ret_from_fork_asm+0x1a/0x30 [ 104.470605][ T176] [ 104.472056][ T176] Memory state around the buggy address: [ 104.475030][ T176] ffff88801d0e3b00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ 104.478482][ T176] ffff88801d0e3b80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc [ 104.482236][ T176] >ffff88801d0e3c00: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 104.486151][ T176] ^ [ 104.488337][ T176] ffff88801d0e3c80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 104.492147][ T176] ffff88801d0e3d00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb [ 104.495816][ T176] ==================================================================