[syzbot] [bluetooth?] KASAN: null-ptr-deref Write in l2cap_sock_suspend_cb

From: syzbot
Date: Wed Sep 20 2023 - 19:03:57 EST


Hello,

syzbot found the following issue on:

HEAD commit: 23f108dc9ed2 Merge tag 'tpmdd-v6.6-rc2' of git://git.kerne..
git tree: upstream
console output: https://syzkaller.appspot.com/x/log.txt?x=177aa344680000
kernel config: https://syzkaller.appspot.com/x/.config?x=9681c105d52b0a72
dashboard link: https://syzkaller.appspot.com/bug?extid=df5cbce32ac8cdb9c7fa
compiler: gcc (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40

Unfortunately, I don't have any reproducer for this issue yet.

Downloadable assets:
disk image (non-bootable): https://storage.googleapis.com/syzbot-assets/7bc7510fe41f/non_bootable_disk-23f108dc.raw.xz
vmlinux: https://storage.googleapis.com/syzbot-assets/e159271e5620/vmlinux-23f108dc.xz
kernel image: https://storage.googleapis.com/syzbot-assets/7aa0e7830b31/bzImage-23f108dc.xz

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+df5cbce32ac8cdb9c7fa@xxxxxxxxxxxxxxxxxxxxxxxxx

==================================================================
BUG: KASAN: null-ptr-deref in instrument_atomic_write include/linux/instrumented.h:82 [inline]
BUG: KASAN: null-ptr-deref in set_bit include/asm-generic/bitops/instrumented-atomic.h:28 [inline]
BUG: KASAN: null-ptr-deref in l2cap_sock_suspend_cb+0x43/0x90 net/bluetooth/l2cap_sock.c:1698
Write of size 8 at addr 0000000000000528 by task kworker/3:4/5228

CPU: 3 PID: 5228 Comm: kworker/3:4 Not tainted 6.6.0-rc1-syzkaller-00070-g23f108dc9ed2 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Workqueue: events l2cap_info_timeout
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xd9/0x1b0 lib/dump_stack.c:106
kasan_report+0xda/0x110 mm/kasan/report.c:588
check_region_inline mm/kasan/generic.c:181 [inline]
kasan_check_range+0xef/0x190 mm/kasan/generic.c:187
instrument_atomic_write include/linux/instrumented.h:82 [inline]
set_bit include/asm-generic/bitops/instrumented-atomic.h:28 [inline]
l2cap_sock_suspend_cb+0x43/0x90 net/bluetooth/l2cap_sock.c:1698
l2cap_chan_ready.part.0+0x1bc/0x230 net/bluetooth/l2cap_core.c:1376
l2cap_chan_ready net/bluetooth/l2cap_core.c:1365 [inline]
l2cap_conn_start+0x15c/0xa40 net/bluetooth/l2cap_core.c:1640
process_one_work+0x887/0x15d0 kernel/workqueue.c:2630
process_scheduled_works kernel/workqueue.c:2703 [inline]
worker_thread+0x8bb/0x1290 kernel/workqueue.c:2784
kthread+0x33a/0x430 kernel/kthread.c:388
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304
</TASK>
==================================================================
Kernel panic - not syncing: KASAN: panic_on_warn set ...
CPU: 3 PID: 5228 Comm: kworker/3:4 Not tainted 6.6.0-rc1-syzkaller-00070-g23f108dc9ed2 #0
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.2-debian-1.16.2-1 04/01/2014
Workqueue: events l2cap_info_timeout
Call Trace:
<TASK>
__dump_stack lib/dump_stack.c:88 [inline]
dump_stack_lvl+0xd9/0x1b0 lib/dump_stack.c:106
panic+0x6a6/0x750 kernel/panic.c:340
check_panic_on_warn+0xab/0xb0 kernel/panic.c:236
end_report+0x108/0x150 mm/kasan/report.c:225
kasan_report+0xea/0x110 mm/kasan/report.c:590
check_region_inline mm/kasan/generic.c:181 [inline]
kasan_check_range+0xef/0x190 mm/kasan/generic.c:187
instrument_atomic_write include/linux/instrumented.h:82 [inline]
set_bit include/asm-generic/bitops/instrumented-atomic.h:28 [inline]
l2cap_sock_suspend_cb+0x43/0x90 net/bluetooth/l2cap_sock.c:1698
l2cap_chan_ready.part.0+0x1bc/0x230 net/bluetooth/l2cap_core.c:1376
l2cap_chan_ready net/bluetooth/l2cap_core.c:1365 [inline]
l2cap_conn_start+0x15c/0xa40 net/bluetooth/l2cap_core.c:1640
process_one_work+0x887/0x15d0 kernel/workqueue.c:2630
process_scheduled_works kernel/workqueue.c:2703 [inline]
worker_thread+0x8bb/0x1290 kernel/workqueue.c:2784
kthread+0x33a/0x430 kernel/kthread.c:388
ret_from_fork+0x45/0x80 arch/x86/kernel/process.c:147
ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:304
</TASK>
Kernel Offset: disabled


---
This report 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 syzkaller@xxxxxxxxxxxxxxxx.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

If the bug is already fixed, let syzbot know by replying with:
#syz fix: exact-commit-title

If you want to overwrite bug's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)

If the bug is a duplicate of another bug, reply with:
#syz dup: exact-subject-of-another-report

If you want to undo deduplication, reply with:
#syz undup