lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Date:   Sun, 4 Apr 2021 16:45:00 +0800
From:   Hao Sun <sunhao.th@...il.com>
To:     viro@...iv.linux.org.uk, linux-fsdevel@...r.kernel.org,
        linux-kernel@...r.kernel.org
Subject: KASAN: use-after-free Read in cdev_del

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

Download attachment "config" of type "application/octet-stream" (221433 bytes)

Download attachment "repro.cprog" of type "application/octet-stream" (2588 bytes)

Download attachment "repro.prog" of type "application/octet-stream" (479 bytes)

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ