Bluetooth: hci2: Opcode 0x0c1a failed: -4 Bluetooth: hci2: Error when powering off device on rfkill (-4) ================================================================== BUG: KASAN: slab-use-after-free in instrument_atomic_read_write include/linux/instrumented.h:96 [inline] BUG: KASAN: slab-use-after-free in atomic_fetch_add_relaxed include/linux/atomic/atomic-instrumented.h:252 [inline] BUG: KASAN: slab-use-after-free in __refcount_add include/linux/refcount.h:184 [inline] BUG: KASAN: slab-use-after-free in __refcount_inc include/linux/refcount.h:241 [inline] BUG: KASAN: slab-use-after-free in refcount_inc include/linux/refcount.h:258 [inline] BUG: KASAN: slab-use-after-free in sock_hold include/net/sock.h:774 [inline] BUG: KASAN: slab-use-after-free in sco_conn_del+0xa5/0x310 net/bluetooth/sco.c:199 Write of size 4 at addr ffff888021ef4080 by task syz-executor.3/9283 CPU: 0 PID: 9283 Comm: syz-executor.3 Not tainted 6.9.0-syzkaller-08284-gea5f6ad9ad96 #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024 Call Trace: __dump_stack lib/dump_stack.c:88 [inline] dump_stack_lvl+0x241/0x360 lib/dump_stack.c:114 print_address_description mm/kasan/report.c:377 [inline] print_report+0x169/0x550 mm/kasan/report.c:488 kasan_report+0x143/0x180 mm/kasan/report.c:601 kasan_check_range+0x282/0x290 mm/kasan/generic.c:189 instrument_atomic_read_write include/linux/instrumented.h:96 [inline] atomic_fetch_add_relaxed include/linux/atomic/atomic-instrumented.h:252 [inline] __refcount_add include/linux/refcount.h:184 [inline] __refcount_inc include/linux/refcount.h:241 [inline] refcount_inc include/linux/refcount.h:258 [inline] sock_hold include/net/sock.h:774 [inline] sco_conn_del+0xa5/0x310 net/bluetooth/sco.c:199 hci_disconn_cfm include/net/bluetooth/hci_core.h:1985 [inline] hci_conn_hash_flush+0x101/0x240 net/bluetooth/hci_conn.c:2584 hci_dev_close_sync+0x911/0xf60 net/bluetooth/hci_sync.c:5062 hci_dev_do_close+0x30/0x90 net/bluetooth/hci_core.c:556 hci_rfkill_set_block+0x232/0x300 net/bluetooth/hci_core.c:982 rfkill_set_block+0x1f3/0x440 net/rfkill/core.c:346 rfkill_fop_write+0x5bb/0x790 net/rfkill/core.c:1305 vfs_write+0x2a4/0xc50 fs/read_write.c:588 ksys_write+0x1a0/0x2c0 fs/read_write.c:643 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7fc58fa7cee9 Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 e1 20 00 00 90 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 b0 ff ff ff f7 d8 64 89 01 48 RSP: 002b:00007fc59070e0c8 EFLAGS: 00000246 ORIG_RAX: 0000000000000001 RAX: ffffffffffffffda RBX: 00007fc58fbac050 RCX: 00007fc58fa7cee9 RDX: 0000000000000008 RSI: 0000000020000080 RDI: 0000000000000003 RBP: 00007fc58fac949e R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000000 R13: 000000000000006e R14: 00007fc58fbac050 R15: 00007ffda6535c88 Allocated by task 9247: kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 poison_kmalloc_redzone mm/kasan/common.c:370 [inline] __kasan_kmalloc+0x98/0xb0 mm/kasan/common.c:387 kasan_kmalloc include/linux/kasan.h:211 [inline] __do_kmalloc_node mm/slub.c:4039 [inline] __kmalloc+0x233/0x4a0 mm/slub.c:4052 kmalloc include/linux/slab.h:632 [inline] sk_prot_alloc+0xe0/0x210 net/core/sock.c:2080 sk_alloc+0x38/0x370 net/core/sock.c:2133 __netlink_create+0x6c/0x280 net/netlink/af_netlink.c:647 netlink_create+0x3d8/0x590 net/netlink/af_netlink.c:708 __sock_create+0x492/0x920 net/socket.c:1571 sock_create net/socket.c:1622 [inline] __sys_socket_create net/socket.c:1659 [inline] __sys_socket+0x150/0x3c0 net/socket.c:1706 __do_sys_socket net/socket.c:1720 [inline] __se_sys_socket net/socket.c:1718 [inline] __x64_sys_socket+0x7a/0x90 net/socket.c:1718 do_syscall_x64 arch/x86/entry/common.c:52 [inline] do_syscall_64+0xf5/0x240 arch/x86/entry/common.c:83 entry_SYSCALL_64_after_hwframe+0x77/0x7f Freed by task 24: kasan_save_stack mm/kasan/common.c:47 [inline] kasan_save_track+0x3f/0x80 mm/kasan/common.c:68 kasan_save_free_info+0x40/0x50 mm/kasan/generic.c:579 poison_slab_object+0xa6/0xe0 mm/kasan/common.c:240 __kasan_slab_free+0x37/0x60 mm/kasan/common.c:256 kasan_slab_free include/linux/kasan.h:184 [inline] slab_free_hook mm/slub.c:2121 [inline] slab_free mm/slub.c:4353 [inline] kfree+0x153/0x3b0 mm/slub.c:4463 sk_prot_free net/core/sock.c:2116 [inline] __sk_destruct+0x476/0x5f0 net/core/sock.c:2208 rcu_do_batch kernel/rcu/tree.c:2535 [inline] rcu_core+0xaff/0x1830 kernel/rcu/tree.c:2809 handle_softirqs+0x2d8/0x990 kernel/softirq.c:554 run_ksoftirqd+0xca/0x130 kernel/softirq.c:928 smpboot_thread_fn+0x546/0xa30 kernel/smpboot.c:164 kthread+0x2f2/0x390 kernel/kthread.c:389 ret_from_fork+0x4d/0x80 arch/x86/kernel/process.c:147 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244 Last potentially related work creation: kasan_save_stack+0x3f/0x60 mm/kasan/common.c:47 __kasan_record_aux_stack+0xac/0xc0 mm/kasan/generic.c:541 __call_rcu_common kernel/rcu/tree.c:3072 [inline] call_rcu+0x167/0xa70 kernel/rcu/tree.c:3176 netlink_release+0x1638/0x1b10 net/netlink/af_netlink.c:827 __sock_release net/socket.c:659 [inline] sock_close+0xbe/0x240 net/socket.c:1421 __fput+0x42b/0x8a0 fs/file_table.c:422 task_work_run+0x251/0x310 kernel/task_work.c:180 exit_task_work include/linux/task_work.h:38 [inline] do_exit+0xa1b/0x27e0 kernel/exit.c:878 do_group_exit+0x207/0x2c0 kernel/exit.c:1027 get_signal+0x16a1/0x1740 kernel/signal.c:2911 arch_do_signal_or_restart+0x96/0x860 arch/x86/kernel/signal.c:310 exit_to_user_mode_loop kernel/entry/common.c:111 [inline] exit_to_user_mode_prepare include/linux/entry-common.h:328 [inline] __syscall_exit_to_user_mode_work kernel/entry/common.c:207 [inline] syscall_exit_to_user_mode+0xc9/0x370 kernel/entry/common.c:218 do_syscall_64+0x102/0x240 arch/x86/entry/common.c:89 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ffff888021ef4000 which belongs to the cache kmalloc-2k of size 2048 The buggy address is located 128 bytes inside of freed 2048-byte region [ffff888021ef4000, ffff888021ef4800) The buggy address belongs to the physical page: page: refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x21ef0 head: order:3 entire_mapcount:0 nr_pages_mapped:0 pincount:0 anon flags: 0xfff00000000840(slab|head|node=0|zone=1|lastcpupid=0x7ff) page_type: 0xffffffff() raw: 00fff00000000840 ffff888015042000 0000000000000000 0000000000000001 raw: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 head: 00fff00000000840 ffff888015042000 0000000000000000 0000000000000001 head: 0000000000000000 0000000000080008 00000001ffffffff 0000000000000000 head: 00fff00000000003 ffffea000087bc01 dead000000000122 00000000ffffffff head: 0000000800000000 0000000000000000 00000000ffffffff 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 3, migratetype Unmovable, gfp_mask 0x1d20c0(__GFP_IO|__GFP_FS|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC|__GFP_HARDWALL), pid 8894, tgid 8893 (syz-executor.3), ts 396714376173, free_ts 396659178806 set_page_owner include/linux/page_owner.h:32 [inline] post_alloc_hook+0x1ea/0x210 mm/page_alloc.c:1534 prep_new_page mm/page_alloc.c:1541 [inline] get_page_from_freelist+0x3410/0x35b0 mm/page_alloc.c:3317 __alloc_pages+0x256/0x6c0 mm/page_alloc.c:4575 __alloc_pages_node include/linux/gfp.h:238 [inline] alloc_pages_node include/linux/gfp.h:261 [inline] alloc_slab_page+0x5f/0x160 mm/slub.c:2190 allocate_slab mm/slub.c:2353 [inline] new_slab+0x84/0x2f0 mm/slub.c:2406 ___slab_alloc+0xb07/0x12e0 mm/slub.c:3592 __slab_alloc mm/slub.c:3682 [inline] __slab_alloc_node mm/slub.c:3735 [inline] slab_alloc_node mm/slub.c:3908 [inline] __do_kmalloc_node mm/slub.c:4038 [inline] __kmalloc_node_track_caller+0x2d6/0x4f0 mm/slub.c:4059 kmalloc_reserve+0x111/0x2a0 net/core/skbuff.c:597 __alloc_skb+0x1f3/0x440 net/core/skbuff.c:666 alloc_skb include/linux/skbuff.h:1308 [inline] nlmsg_new include/net/netlink.h:1015 [inline] audit_buffer_alloc kernel/audit.c:1794 [inline] audit_log_start+0x186/0xa30 kernel/audit.c:1912 audit_seccomp+0x63/0x1f0 kernel/auditsc.c:3007 seccomp_log kernel/seccomp.c:1003 [inline] __seccomp_filter+0xb38/0x1fe0 kernel/seccomp.c:1292 syscall_trace_enter+0xa8/0x150 kernel/entry/common.c:52 syscall_enter_from_user_mode_work include/linux/entry-common.h:168 [inline] syscall_enter_from_user_mode include/linux/entry-common.h:198 [inline] do_syscall_64+0xcc/0x240 arch/x86/entry/common.c:79 entry_SYSCALL_64_after_hwframe+0x77/0x7f page last free pid 8894 tgid 8893 stack trace: reset_page_owner include/linux/page_owner.h:25 [inline] free_pages_prepare mm/page_alloc.c:1141 [inline] free_unref_page_prepare+0x986/0xab0 mm/page_alloc.c:2347 free_unref_page+0x37/0x3f0 mm/page_alloc.c:2487 discard_slab mm/slub.c:2452 [inline] __put_partials+0xeb/0x130 mm/slub.c:2920 put_cpu_partial+0x17c/0x250 mm/slub.c:2995 __slab_free+0x2ea/0x3d0 mm/slub.c:4224 qlink_free mm/kasan/quarantine.c:163 [inline] qlist_free_all+0x5e/0xc0 mm/kasan/quarantine.c:179 kasan_quarantine_reduce+0x14f/0x170 mm/kasan/quarantine.c:286 __kasan_slab_alloc+0x23/0x80 mm/kasan/common.c:322 kasan_slab_alloc include/linux/kasan.h:201 [inline] slab_post_alloc_hook mm/slub.c:3871 [inline] slab_alloc_node mm/slub.c:3918 [inline] kmem_cache_alloc+0x174/0x350 mm/slub.c:3925 audit_buffer_alloc kernel/audit.c:1790 [inline] audit_log_start+0x15e/0xa30 kernel/audit.c:1912 audit_seccomp+0x63/0x1f0 kernel/auditsc.c:3007 seccomp_log kernel/seccomp.c:1003 [inline] __seccomp_filter+0xb38/0x1fe0 kernel/seccomp.c:1292 syscall_trace_enter+0xa8/0x150 kernel/entry/common.c:52 syscall_enter_from_user_mode_work include/linux/entry-common.h:168 [inline] syscall_enter_from_user_mode include/linux/entry-common.h:198 [inline] do_syscall_64+0xcc/0x240 arch/x86/entry/common.c:79 entry_SYSCALL_64_after_hwframe+0x77/0x7f Memory state around the buggy address: ffff888021ef3f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff888021ef4000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888021ef4080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff888021ef4100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ffff888021ef4180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================