KASAN: use-after-free Read in cdev_del

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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

Attachment: config
Description: Binary data

Attachment: repro.cprog
Description: Binary data

Attachment: repro.prog
Description: Binary data


[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux