syzbot has found a reproducer for the following issue on:
HEAD commit: cc5ec8769306 Linux 5.15.196
git tree: linux-5.15.y
console output:
https://syzkaller.appspot.com/x/log.txt?x=157b98c2580000
kernel config:
https://syzkaller.appspot.com/x/.config?x=e1bb6d24ef2164eb
dashboard link:
https://syzkaller.appspot.com/bug?extid=6face46c1d2f28e76643
compiler: Debian clang version 20.1.8 (++20250708063551+0c9f909b7976-1~exp1~20250708183702.136), Debian LLD 20.1.8
syz repro:
https://syzkaller.appspot.com/x/repro.syz?x=12b1c512580000
Downloadable assets:
disk image:
https://storage.googleapis.com/syzbot-assets/c71c660545b2/disk-cc5ec876.raw.xz
vmlinux:
https://storage.googleapis.com/syzbot-assets/4f011826cca6/vmlinux-cc5ec876.xz
kernel image:
https://storage.googleapis.com/syzbot-assets/8ccd1a2c3f8c/bzImage-cc5ec876.xz
general protection fault, probably for non-canonical address 0xdffffc000000000b: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000058-0x000000000000005f]
CPU: 0 PID: 10130 Comm: syz-executor Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/02/2025
RIP: 0010:klist_put lib/klist.c:212 [inline]
RIP: 0010:klist_del lib/klist.c:230 [inline]
RIP: 0010:klist_remove+0x144/0x2f0 lib/klist.c:249
Code: b6 05 4d 89 f4 49 c1 ec 03 43 80 3c 2c 00 74 08 4c 89 f7 e8 7e 46 c0 fd 4d 8b 3e 49 83 e7 fe 49 8d 7f 58 48 89 f8 48 c1 e8 03 <42> 80 3c 28 00 74 05 e8 60 46 c0 fd 49 8b 47 58 48 89 44 24 08 4c
RSP: 0018:ffffc9000ca0f660 EFLAGS: 00010202
RAX: 000000000000000b RBX: ffff888023a49dc0 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000058
RBP: ffffc9000ca0f748 R08: dffffc0000000000 R09: fffffbfff18e70bd
R10: fffffbfff18e70bd R11: 1ffffffff18e70bc R12: 1ffff11003c1178c
R13: dffffc0000000000 R14: ffff88801e08bc60 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b9000000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007ffda37ebb38 CR3: 000000005d5f1000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
device_move+0x18f/0x6f0 drivers/base/core.c:4338
hci_conn_del_sysfs+0xab/0x160 net/bluetooth/hci_sysfs.c:73
hci_conn_cleanup+0x4d1/0x680 net/bluetooth/hci_conn.c:140
hci_conn_del+0x2ab/0x3e0 net/bluetooth/hci_conn.c:678
hci_conn_hash_flush+0x185/0x220 net/bluetooth/hci_conn.c:1623
hci_dev_do_close+0x991/0x1030 net/bluetooth/hci_core.c:1795
hci_unregister_dev+0x2d7/0x580 net/bluetooth/hci_core.c:4040
vhci_release+0x73/0xc0 drivers/bluetooth/hci_vhci.c:345
__fput+0x234/0x930 fs/file_table.c:311
task_work_run+0x125/0x1a0 kernel/task_work.c:188
exit_task_work include/linux/task_work.h:33 [inline]
do_exit+0x61e/0x20a0 kernel/exit.c:883
do_group_exit+0x12e/0x300 kernel/exit.c:997
get_signal+0x6ca/0x12c0 kernel/signal.c:2900
arch_do_signal_or_restart+0xc1/0x1300 arch/x86/kernel/signal.c:867
handle_signal_work kernel/entry/common.c:154 [inline]
exit_to_user_mode_loop+0x9e/0x130 kernel/entry/common.c:178
exit_to_user_mode_prepare+0xee/0x180 kernel/entry/common.c:214
__syscall_exit_to_user_mode_work kernel/entry/common.c:296 [inline]
syscall_exit_to_user_mode+0x16/0x40 kernel/entry/common.c:307
do_syscall_64+0x58/0xa0 arch/x86/entry/common.c:86
entry_SYSCALL_64_after_hwframe+0x66/0xd0
RIP: 0033:0x7f6c21dbf48a
Code: Unable to access opcode bytes at RIP 0x7f6c21dbf460.
RSP: 002b:00007ffe7faba928 EFLAGS: 00000212 ORIG_RAX: 0000000000000037
RAX: 0000000000000000 RBX: 0000000000000003 RCX: 00007f6c21dbf48a
RDX: 0000000000000061 RSI: 0000000000000000 RDI: 0000000000000003
RBP: 00007ffe7faba990 R08: 00007ffe7faba93c R09: 00007ffe7fabad27
R10: 00007ffe7faba990 R11: 0000000000000212 R12: 00007ffe7faba93c
R13: 00000000000927c0 R14: 000000000005e1b1 R15: 00007ffe7fabb070
</TASK>
Modules linked in:
---[ end trace 07b12697f4f5c7e4 ]---
RIP: 0010:klist_put lib/klist.c:212 [inline]
RIP: 0010:klist_del lib/klist.c:230 [inline]
RIP: 0010:klist_remove+0x144/0x2f0 lib/klist.c:249
Code: b6 05 4d 89 f4 49 c1 ec 03 43 80 3c 2c 00 74 08 4c 89 f7 e8 7e 46 c0 fd 4d 8b 3e 49 83 e7 fe 49 8d 7f 58 48 89 f8 48 c1 e8 03 <42> 80 3c 28 00 74 05 e8 60 46 c0 fd 49 8b 47 58 48 89 44 24 08 4c
RSP: 0018:ffffc9000ca0f660 EFLAGS: 00010202
RAX: 000000000000000b RBX: ffff888023a49dc0 RCX: 0000000000000000
RDX: 0000000000000000 RSI: 0000000000000004 RDI: 0000000000000058
RBP: ffffc9000ca0f748 R08: dffffc0000000000 R09: fffffbfff18e70bd
R10: fffffbfff18e70bd R11: 1ffffffff18e70bc R12: 1ffff11003c1178c
R13: dffffc0000000000 R14: ffff88801e08bc60 R15: 0000000000000000
FS: 0000000000000000(0000) GS:ffff8880b9100000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005603ebe5c010 CR3: 000000005c11c000 CR4: 00000000003506e0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
0: b6 05 mov $0x5,%dh
2: 4d 89 f4 mov %r14,%r12
5: 49 c1 ec 03 shr $0x3,%r12
9: 43 80 3c 2c 00 cmpb $0x0,(%r12,%r13,1)
e: 74 08 je 0x18
10: 4c 89 f7 mov %r14,%rdi
13: e8 7e 46 c0 fd call 0xfdc04696
18: 4d 8b 3e mov (%r14),%r15
1b: 49 83 e7 fe and $0xfffffffffffffffe,%r15
1f: 49 8d 7f 58 lea 0x58(%r15),%rdi
23: 48 89 f8 mov %rdi,%rax
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 42 80 3c 28 00 cmpb $0x0,(%rax,%r13,1) <-- trapping instruction
2f: 74 05 je 0x36
31: e8 60 46 c0 fd call 0xfdc04696
36: 49 8b 47 58 mov 0x58(%r15),%rax
3a: 48 89 44 24 08 mov %rax,0x8(%rsp)
3f: 4c rex.WR
---
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.