================================================================== BUG: KASAN: slab-use-after-free in hci_cmd_timeout+0x1d0/0x1e0 net/bluetooth/hci_core.c:1463 Read of size 2 at addr ffff888027b75038 by task kworker/u5:1/22726 CPU: 0 PID: 22726 Comm: kworker/u5:1 Not tainted syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026 Workqueue: hci1 hci_cmd_timeout Call Trace: dump_stack_lvl+0x18c/0x250 lib/dump_stack.c:106 print_address_description mm/kasan/report.c:364 [inline] print_report+0xa8/0x210 mm/kasan/report.c:468 kasan_report+0x117/0x150 mm/kasan/report.c:581 hci_cmd_timeout+0x1d0/0x1e0 net/bluetooth/hci_core.c:1463 process_one_work kernel/workqueue.c:2657 [inline] process_scheduled_works+0xa60/0x1600 kernel/workqueue.c:2734 worker_thread+0xa5e/0xfe0 kernel/workqueue.c:2815 kthread+0x2fa/0x390 kernel/kthread.c:388 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293 Allocated by task 5793: kasan_save_stack mm/kasan/common.c:46 [inline] kasan_set_track+0x4e/0x70 mm/kasan/common.c:53 __kasan_slab_alloc+0x6c/0x80 mm/kasan/common.c:329 kasan_slab_alloc include/linux/kasan.h:188 [inline] slab_post_alloc_hook+0x6a/0x4d0 mm/slab.h:770 slab_alloc_node mm/slub.c:3495 [inline] slab_alloc mm/slub.c:3503 [inline] __kmem_cache_alloc_lru mm/slub.c:3510 [inline] kmem_cache_alloc+0x17e/0x2c0 mm/slub.c:3519 skb_clone+0x1eb/0x370 net/core/skbuff.c:1912 hci_send_cmd_sync net/bluetooth/hci_core.c:4066 [inline] hci_cmd_work+0x284/0x660 net/bluetooth/hci_core.c:4086 process_one_work kernel/workqueue.c:2657 [inline] process_scheduled_works+0xa60/0x1600 kernel/workqueue.c:2734 worker_thread+0xa5e/0xfe0 kernel/workqueue.c:2815 kthread+0x2fa/0x390 kernel/kthread.c:388 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293 Freed by task 3672: kasan_save_stack mm/kasan/common.c:46 [inline] kasan_set_track+0x4e/0x70 mm/kasan/common.c:53 kasan_save_free_info+0x28/0x40 mm/kasan/generic.c:522 ____kasan_slab_free+0x126/0x1f0 mm/kasan/common.c:237 kasan_slab_free include/linux/kasan.h:164 [inline] slab_free_hook mm/slub.c:1811 [inline] slab_free_freelist_hook+0x130/0x1a0 mm/slub.c:1837 slab_free mm/slub.c:3830 [inline] kmem_cache_free+0xf8/0x290 mm/slub.c:3852 kfree_skb include/linux/skbuff.h:1264 [inline] __hci_req_sync+0x67e/0x960 net/bluetooth/hci_request.c:184 hci_req_sync+0xa2/0xc0 net/bluetooth/hci_request.c:206 hci_inquiry+0x38e/0x600 net/bluetooth/hci_core.c:394 sock_do_ioctl+0xfc/0x310 net/socket.c:1220 sock_ioctl+0x5be/0x7e0 net/socket.c:1341 vfs_ioctl fs/ioctl.c:51 [inline] __do_sys_ioctl fs/ioctl.c:871 [inline] __se_sys_ioctl+0xfd/0x170 fs/ioctl.c:857 do_syscall_x64 arch/x86/entry/common.c:46 [inline] do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:76 entry_SYSCALL_64_after_hwframe+0x68/0xd2 The buggy address belongs to the object at ffff888027b75000 which belongs to the cache skbuff_head_cache of size 240 The buggy address is located 56 bytes inside of freed 240-byte region [ffff888027b75000, ffff888027b750f0) The buggy address belongs to the physical page: page:ffffea00009edd40 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x27b75 anon flags: 0xfff00000000800(slab|node=0|zone=1|lastcpupid=0x7ff) page_type: 0xffffffff() raw: 00fff00000000800 ffff88801e27d000 ffffea0001188a00 dead000000000005 raw: 0000000000000000 00000000000c000c 00000001ffffffff 0000000000000000 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 0, migratetype Unmovable, gfp_mask 0x112cc0(GFP_USER|__GFP_NOWARN|__GFP_NORETRY), pid 5793, tgid 5793 (kworker/u5:4), ts 1195947923618, free_ts 1195919245591 set_page_owner include/linux/page_owner.h:31 [inline] post_alloc_hook+0x1c1/0x200 mm/page_alloc.c:1582 prep_new_page mm/page_alloc.c:1589 [inline] get_page_from_freelist+0x2181/0x22a0 mm/page_alloc.c:3221 __alloc_pages+0x1f0/0x460 mm/page_alloc.c:4501 alloc_slab_page+0x5d/0x180 mm/slub.c:1881 allocate_slab mm/slub.c:2028 [inline] new_slab+0x87/0x2d0 mm/slub.c:2081 ___slab_alloc+0xc5c/0x12f0 mm/slub.c:3253 __slab_alloc mm/slub.c:3339 [inline] __slab_alloc_node mm/slub.c:3392 [inline] slab_alloc_node mm/slub.c:3485 [inline] slab_alloc mm/slub.c:3503 [inline] __kmem_cache_alloc_lru mm/slub.c:3510 [inline] kmem_cache_alloc+0x109/0x2c0 mm/slub.c:3519 skb_clone+0x1eb/0x370 net/core/skbuff.c:1912 hci_send_cmd_sync net/bluetooth/hci_core.c:4066 [inline] hci_cmd_work+0x284/0x660 net/bluetooth/hci_core.c:4086 process_one_work kernel/workqueue.c:2657 [inline] process_scheduled_works+0xa60/0x1600 kernel/workqueue.c:2734 worker_thread+0xa5e/0xfe0 kernel/workqueue.c:2815 kthread+0x2fa/0x390 kernel/kthread.c:388 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293 page last free stack trace: reset_page_owner include/linux/page_owner.h:24 [inline] free_pages_prepare mm/page_alloc.c:1182 [inline] free_unref_page_prepare+0x7d7/0x8f0 mm/page_alloc.c:2366 free_unref_page+0x32/0x2e0 mm/page_alloc.c:2459 tlb_batch_list_free mm/mmu_gather.c:115 [inline] tlb_finish_mmu+0x13e/0x220 mm/mmu_gather.c:428 exit_mmap+0x428/0xb90 mm/mmap.c:3315 __mmput+0x118/0x3a0 kernel/fork.c:1362 exit_mm+0x23f/0x340 kernel/exit.c:576 do_exit+0x909/0x2530 kernel/exit.c:877 do_group_exit+0x22d/0x2f0 kernel/exit.c:1032 __do_sys_exit_group kernel/exit.c:1043 [inline] __se_sys_exit_group kernel/exit.c:1041 [inline] __x64_sys_exit_group+0x3f/0x40 kernel/exit.c:1041 do_syscall_x64 arch/x86/entry/common.c:46 [inline] do_syscall_64+0x55/0xb0 arch/x86/entry/common.c:76 entry_SYSCALL_64_after_hwframe+0x68/0xd2 Memory state around the buggy address: ffff888027b74f00: 00 00 00 00 00 00 00 00 00 00 00 00 fc fc fc fc ffff888027b74f80: 00 00 00 00 00 00 00 00 00 00 00 00 fc fc fc fc >ffff888027b75000: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ^ ffff888027b75080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fc fc ffff888027b75100: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb ==================================================================