Hi: When using Healer(https://github.com/SunHao-0/healer/tree/dev) to fuzz the Linux kernel, I found a use-after-free vulnerability in cdev_del. I found that Syzkaller had reported this bug a long time ago, but the problem still exists. Now I have collected the KASAN report and a reproduction program, I hope this information can help you locate and solve the problem. Here is the detailed information: commit: 5e46d1b78a03d52306f21f77a4e4a144b6d31486 version: Linux 5.12-rc5 git tree: upstream kernel config and reproducing program can be found in the attachment. KASAN report: ================================================================== BUG: KASAN: use-after-free in cdev_del+0x8b/0x90 -origin/fs/char_dev.c:596 Read of size 4 at addr ffff888011e20864 by task executor/8066 CPU: 1 PID: 8066 Comm: executor Not tainted 5.12.0-rc5+ #7 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.13.0-1ubuntu1.1 04/01/2014 Call Trace: __dump_stack -origin/lib/dump_stack.c:79 [inline] dump_stack+0xfa/0x151 -origin/lib/dump_stack.c:120 print_address_description.constprop.0.cold+0x82/0x32c -origin/mm/kasan/report.c:232 __kasan_report -origin/mm/kasan/report.c:399 [inline] kasan_report.cold+0x7c/0xd8 -origin/mm/kasan/report.c:416 cdev_del+0x8b/0x90 -origin/fs/char_dev.c:596 tty_unregister_device -origin/drivers/tty/tty_io.c:3343 [inline] tty_unregister_device+0x112/0x1b0 -origin/drivers/tty/tty_io.c:3338 gsmld_detach_gsm -origin/drivers/tty/n_gsm.c:2409 [inline] gsmld_close+0xb3/0x1f0 -origin/drivers/tty/n_gsm.c:2478 tty_ldisc_close.isra.0+0x110/0x190 -origin/drivers/tty/tty_ldisc.c:488 tty_ldisc_kill+0x94/0x150 -origin/drivers/tty/tty_ldisc.c:636 tty_ldisc_hangup+0x2d0/0x630 -origin/drivers/tty/tty_ldisc.c:756 __tty_hangup.part.0+0x2f0/0x700 -origin/drivers/tty/tty_io.c:639 __tty_hangup -origin/drivers/tty/tty_io.c:595 [inline] tty_vhangup -origin/drivers/tty/tty_io.c:712 [inline] tty_ioctl+0x992/0x14f0 -origin/drivers/tty/tty_io.c:2742 vfs_ioctl -origin/fs/ioctl.c:48 [inline] __do_sys_ioctl -origin/fs/ioctl.c:753 [inline] __se_sys_ioctl -origin/fs/ioctl.c:739 [inline] __x64_sys_ioctl+0x193/0x200 -origin/fs/ioctl.c:739 do_syscall_64+0x2d/0x70 -origin/arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xae RIP: 0033:0x47338d Code: 02 b8 ff ff ff ff c3 66 0f 1f 44 00 00 f3 0f 1e fa 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:00007ff4d8de3c58 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 RAX: ffffffffffffffda RBX: 000000000059c128 RCX: 000000000047338d RDX: 0000000000000000 RSI: 0000000000005437 RDI: 0000000000000003 RBP: 00000000004e8e5d R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 000000000059c128 R13: 00007fff86f0a5ef R14: 00007fff86f0a790 R15: 00007ff4d8de3dc0