WARNING: refcount bug in hci_register_dev

8 views
Skip to first unread message

syzbot

unread,
Aug 31, 2019, 6:49:10 PM8/31/19
to syzkaller...@googlegroups.com
Hello,

syzbot found the following crash on:

HEAD commit: 97ab07e1 Linux 4.19.69
git tree: linux-4.19.y
console output: https://syzkaller.appspot.com/x/log.txt?x=110a1156600000
kernel config: https://syzkaller.appspot.com/x/.config?x=a73820df154c3af
dashboard link: https://syzkaller.appspot.com/bug?extid=ef7f3e6851ea9c12f0e3
compiler: gcc (GCC) 9.0.0 20181231 (experimental)
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=12db0312600000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=1036c18e600000

IMPORTANT: if you fix the bug, please add the following tag to the commit:
Reported-by: syzbot+ef7f3e...@syzkaller.appspotmail.com

------------[ cut here ]------------
refcount_t: increment on 0; use-after-free.
WARNING: CPU: 0 PID: 11609 at lib/refcount.c:153 refcount_inc_checked
lib/refcount.c:153 [inline]
WARNING: CPU: 0 PID: 11609 at lib/refcount.c:153
refcount_inc_checked+0x61/0x70 lib/refcount.c:151
Kernel panic - not syncing: panic_on_warn set ...

CPU: 0 PID: 11609 Comm: syz-executor426 Not tainted 4.19.69 #43
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS
Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x172/0x1f0 lib/dump_stack.c:113
panic+0x263/0x507 kernel/panic.c:185
__warn.cold+0x20/0x4a kernel/panic.c:540
report_bug+0x263/0x2b0 lib/bug.c:186
fixup_bug arch/x86/kernel/traps.c:178 [inline]
fixup_bug arch/x86/kernel/traps.c:173 [inline]
do_error_trap+0x204/0x360 arch/x86/kernel/traps.c:296
do_invalid_op+0x1b/0x20 arch/x86/kernel/traps.c:316
invalid_op+0x14/0x20 arch/x86/entry/entry_64.S:1037
RIP: 0010:refcount_inc_checked lib/refcount.c:153 [inline]
RIP: 0010:refcount_inc_checked+0x61/0x70 lib/refcount.c:151
Code: 1d c1 4b 13 06 31 ff 89 de e8 1b ba 46 fe 84 db 75 dd e8 d2 b8 46 fe
48 c7 c7 20 29 82 87 c6 05 a1 4b 13 06 01 e8 fd 44 1a fe <0f> 0b eb c1 90
66 2e 0f 1f 84 00 00 00 00 00 55 48 89 e5 41 57 41
RSP: 0018:ffff88809c39f920 EFLAGS: 00010286
RAX: 0000000000000000 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff8155cdd6 RDI: ffffed1013873f16
RBP: ffff88809c39f930 R08: ffff888085f885c0 R09: ffffed1015d03ee3
R10: ffffed1015d03ee2 R11: ffff8880ae81f717 R12: ffff88821ade9e38
R13: ffff8880934eaba0 R14: ffff8880934eab98 R15: ffff88821ade9db8
kref_get include/linux/kref.h:47 [inline]
kobject_get+0x66/0xc0 lib/kobject.c:613
kset_get include/linux/kobject.h:213 [inline]
kobj_kset_join lib/kobject.c:186 [inline]
kobject_add_internal lib/kobject.c:238 [inline]
kobject_add_internal+0x14f/0x380 lib/kobject.c:217
kobject_add_varg lib/kobject.c:382 [inline]
kobject_add+0x150/0x1c0 lib/kobject.c:426
class_dir_create_and_add drivers/base/core.c:1560 [inline]
get_device_parent.isra.0+0x415/0x570 drivers/base/core.c:1615
device_add+0x2f4/0x1760 drivers/base/core.c:1871
hci_register_dev+0x304/0x880 net/bluetooth/hci_core.c:3198
__vhci_create_device+0x2d0/0x5a0 drivers/bluetooth/hci_vhci.c:139
vhci_create_device drivers/bluetooth/hci_vhci.c:163 [inline]
vhci_get_user drivers/bluetooth/hci_vhci.c:219 [inline]
vhci_write+0x2d6/0x470 drivers/bluetooth/hci_vhci.c:299
call_write_iter include/linux/fs.h:1820 [inline]
new_sync_write fs/read_write.c:474 [inline]
__vfs_write+0x587/0x810 fs/read_write.c:487
vfs_write+0x20c/0x560 fs/read_write.c:549
ksys_write+0x14f/0x2d0 fs/read_write.c:599
__do_sys_write fs/read_write.c:611 [inline]
__se_sys_write fs/read_write.c:608 [inline]
__x64_sys_write+0x73/0xb0 fs/read_write.c:608
do_syscall_64+0xfd/0x620 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x441279
Code: e8 ac e8 ff ff 48 83 c4 18 c3 0f 1f 80 00 00 00 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 0f 83 eb 08 fc ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007ffd88d82068 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 0000000000441279
RDX: 0000000000000002 RSI: 0000000020000180 RDI: 0000000000000003
RBP: 000000000007e422 R08: 00000000004002c8 R09: 00000000004002c8
R10: 0000000000000004 R11: 0000000000000246 R12: 0000000000401ff0
R13: 0000000000402080 R14: 0000000000000000 R15: 0000000000000000
Kernel Offset: disabled
Rebooting in 86400 seconds..


---
This bug is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this bug report. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
syzbot can test patches for this bug, for details see:
https://goo.gl/tpsmEJ#testing-patches

syzbot

unread,
Dec 5, 2019, 3:00:01 PM12/5/19
to syzkaller...@googlegroups.com
syzbot suspects this bug was fixed by commit:

commit e1666bcbae0c5edb6d7a752b31a8f28c59b54546
Author: Muchun Song <smu...@gmail.com>
Date: Sat Jul 27 03:21:22 2019 +0000

driver core: Fix use-after-free and double free on glue directory

bisection log: https://syzkaller.appspot.com/x/bisect.txt?x=1229d941e00000
start commit: 97ab07e1 Linux 4.19.69
git tree: linux-4.19.y
If the result looks correct, please mark the bug fixed by replying with:

#syz fix: driver core: Fix use-after-free and double free on glue directory

For information about bisection process see: https://goo.gl/tpsmEJ#bisection
Reply all
Reply to author
Forward
0 new messages