Bluetooth: hci2: Dropping invalid advertising data ================================================================== BUG: KASAN: slab-out-of-bounds in hci_le_adv_report_evt net/bluetooth/hci_event.c:5600 [inline] BUG: KASAN: slab-out-of-bounds in hci_le_meta_evt+0x38c9/0x3ff0 net/bluetooth/hci_event.c:5923 Read of size 1 at addr ffff8880a6476204 by task kworker/u5:3/8229 CPU: 0 PID: 8229 Comm: kworker/u5:3 Not tainted 5.8.0-syzkaller #0 Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011 Workqueue: hci2 hci_rx_work Call Trace: __dump_stack lib/dump_stack.c:77 [inline] dump_stack+0x18f/0x20d lib/dump_stack.c:118 print_address_description.constprop.0.cold+0xae/0x436 mm/kasan/report.c:383 __kasan_report mm/kasan/report.c:513 [inline] kasan_report.cold+0x1f/0x37 mm/kasan/report.c:530 hci_le_adv_report_evt net/bluetooth/hci_event.c:5600 [inline] hci_le_meta_evt+0x38c9/0x3ff0 net/bluetooth/hci_event.c:5923 hci_event_packet+0x2e25/0x87a8 net/bluetooth/hci_event.c:6192 hci_rx_work+0x22e/0xb50 net/bluetooth/hci_core.c:4889 process_one_work+0x94c/0x1670 kernel/workqueue.c:2269 worker_thread+0x64c/0x1120 kernel/workqueue.c:2415 kthread+0x3b5/0x4a0 kernel/kthread.c:292 ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:294 Allocated by task 10482: save_stack+0x1b/0x40 mm/kasan/common.c:48 set_track mm/kasan/common.c:56 [inline] __kasan_kmalloc.constprop.0+0xc2/0xd0 mm/kasan/common.c:494 __kmalloc_reserve net/core/skbuff.c:142 [inline] __alloc_skb+0xae/0x550 net/core/skbuff.c:210 alloc_skb include/linux/skbuff.h:1084 [inline] bt_skb_alloc include/net/bluetooth/bluetooth.h:389 [inline] vhci_get_user drivers/bluetooth/hci_vhci.c:165 [inline] vhci_write+0xbd/0x450 drivers/bluetooth/hci_vhci.c:285 call_write_iter include/linux/fs.h:1868 [inline] new_sync_write+0x422/0x650 fs/read_write.c:503 vfs_write+0x59d/0x6b0 fs/read_write.c:578 ksys_write+0x12d/0x250 fs/read_write.c:631 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9 Freed by task 3905: save_stack+0x1b/0x40 mm/kasan/common.c:48 set_track mm/kasan/common.c:56 [inline] kasan_set_free_info mm/kasan/common.c:316 [inline] __kasan_slab_free+0xf5/0x140 mm/kasan/common.c:455 __cache_free mm/slab.c:3426 [inline] kfree+0x103/0x2c0 mm/slab.c:3757 skb_free_head net/core/skbuff.c:590 [inline] skb_release_data+0x6d9/0x910 net/core/skbuff.c:610 skb_release_all net/core/skbuff.c:664 [inline] __kfree_skb net/core/skbuff.c:678 [inline] consume_skb net/core/skbuff.c:837 [inline] consume_skb+0xc2/0x160 net/core/skbuff.c:831 skb_free_datagram+0x16/0xf0 net/core/datagram.c:325 netlink_recvmsg+0x61e/0xee0 net/netlink/af_netlink.c:1998 sock_recvmsg_nosec net/socket.c:885 [inline] sock_recvmsg net/socket.c:903 [inline] sock_recvmsg net/socket.c:899 [inline] ____sys_recvmsg+0x2c4/0x640 net/socket.c:2582 ___sys_recvmsg+0x127/0x200 net/socket.c:2624 __sys_recvmsg+0xe2/0x1a0 net/socket.c:2658 do_syscall_64+0x2d/0x70 arch/x86/entry/common.c:46 entry_SYSCALL_64_after_hwframe+0x44/0xa9 The buggy address belongs to the object at ffff8880a6476000 which belongs to the cache kmalloc-512 of size 512 The buggy address is located 4 bytes to the right of 512-byte region [ffff8880a6476000, ffff8880a6476200) The buggy address belongs to the page: page:ffffea0002991d80 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff8880a6476400 flags: 0xfffe0000000200(slab) raw: 00fffe0000000200 ffffea00028ec888 ffffea0002870088 ffff8880aa000a80 raw: ffff8880a6476400 ffff8880a6476000 0000000100000003 0000000000000000 page dumped because: kasan: bad access detected Memory state around the buggy address: ffff8880a6476100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8880a6476180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 >ffff8880a6476200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff8880a6476280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff8880a6476300: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ==================================================================