================================================================== BUG: KASAN: slab-out-of-bounds in mcp2221_raw_event+0x10b0/0x12a0 drivers/hid/hid-mcp2221.c:964 Read of size 1 at addr ffff88806877ffff by task syz.2.472/7456 CPU: 1 UID: 0 PID: 7456 Comm: syz.2.472 Tainted: G L syzkaller #0 PREEMPT(full) Tainted: [L]=SOFTLOCKUP Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 06/25/2026 Call Trace: dump_stack_lvl+0xe8/0x150 lib/dump_stack.c:120 print_address_description+0x55/0x1e0 mm/kasan/report.c:378 print_report+0x58/0x70 mm/kasan/report.c:482 kasan_report+0x117/0x150 mm/kasan/report.c:595 mcp2221_raw_event+0x10b0/0x12a0 drivers/hid/hid-mcp2221.c:964 __hid_input_report+0x41c/0x580 drivers/hid/hid-core.c:2168 hid_irq_in+0x492/0x710 drivers/hid/usbhid/hid-core.c:287 __usb_hcd_giveback_urb+0x374/0x530 drivers/usb/core/hcd.c:1657 dummy_timer+0xac3/0x4b40 drivers/usb/gadget/udc/dummy_hcd.c:2005 __run_hrtimer kernel/time/hrtimer.c:2032 [inline] __hrtimer_run_queues+0x3bc/0xa10 kernel/time/hrtimer.c:2096 hrtimer_run_softirq+0x17a/0x240 kernel/time/hrtimer.c:2113 handle_softirqs+0x225/0x840 kernel/softirq.c:622 __do_softirq kernel/softirq.c:656 [inline] invoke_softirq kernel/softirq.c:496 [inline] __irq_exit_rcu+0xca/0x220 kernel/softirq.c:735 irq_exit_rcu+0x9/0x30 kernel/softirq.c:752 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1062 [inline] sysvec_apic_timer_interrupt+0x57/0xc0 arch/x86/kernel/apic/apic.c:1062 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674 RIP: 0033:0x7ff8f4c724a0 Code: fe c6 44 24 0e 01 45 31 ed 45 31 f6 89 7c 24 08 85 c0 0f 84 10 01 00 00 66 90 48 8b 3c 24 49 8b 54 24 40 4c 89 f0 4a 03 14 ef <80> 3d 01 59 3b 00 00 49 89 d6 48 89 d3 74 28 25 ff 0f 00 00 83 f0 RSP: 002b:00007ff8f514fae0 EFLAGS: 00000286 RAX: ffffffff816b80bf RBX: ffffffff816b85b9 RCX: ffffffff816b85b9 RDX: ffffffff816b808b RSI: ffffffff816b85b9 RDI: 00007ff8f47ff008 RBP: 0000000000000000 R08: 00007ff8f5010000 R09: 00007ff8f5012000 R10: 00000000816b85bd R11: 0000000000000005 R12: 00007ff8f5026038 R13: 000000000001221f R14: ffffffff816b80bf R15: 00007ff8f5b55720 Allocated by task 5684: kasan_save_stack mm/kasan/common.c:57 [inline] kasan_save_track+0x3e/0x80 mm/kasan/common.c:78 poison_kmalloc_redzone mm/kasan/common.c:398 [inline] __kasan_kmalloc+0x93/0xb0 mm/kasan/common.c:415 kasan_kmalloc include/linux/kasan.h:263 [inline] __kmalloc_cache_noprof+0x32d/0x660 mm/slub.c:5515 _kmalloc_noprof include/linux/slab.h:969 [inline] __hw_addr_create+0x62/0x240 net/core/dev_addr_lists.c:62 __hw_addr_list_snapshot+0x19e/0x740 net/core/dev_addr_lists.c:545 netif_addr_lists_snapshot net/core/dev_addr_lists.c:1197 [inline] netif_rx_mode_run+0x6cd/0x11b0 net/core/dev_addr_lists.c:1297 do_setlink+0x3c9f/0x4670 net/core/rtnetlink.c:3469 rtnl_changelink net/core/rtnetlink.c:3849 [inline] __rtnl_newlink net/core/rtnetlink.c:4022 [inline] rtnl_newlink+0x15c2/0x1bd0 net/core/rtnetlink.c:4159 rtnetlink_rcv_msg+0x802/0xc00 net/core/rtnetlink.c:7076 netlink_rcv_skb+0x226/0x4a0 net/netlink/af_netlink.c:2556 netlink_unicast_kernel net/netlink/af_netlink.c:1319 [inline] netlink_unicast+0x7bb/0x940 net/netlink/af_netlink.c:1345 netlink_sendmsg+0x813/0xb40 net/netlink/af_netlink.c:1900 sock_sendmsg_nosec+0x13a/0x180 net/socket.c:775 __sock_sendmsg net/socket.c:790 [inline] __sys_sendto+0x408/0x5a0 net/socket.c:2252 __do_sys_sendto net/socket.c:2259 [inline] __se_sys_sendto net/socket.c:2255 [inline] __x64_sys_sendto+0xde/0x100 net/socket.c:2255 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ffff88806877ff00 which belongs to the cache kmalloc-128 of size 128 The buggy address is located 151 bytes to the right of allocated 104-byte region [ffff88806877ff00, ffff88806877ff68) The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0xffff88806877f700 pfn:0x6877f flags: 0xfff00000000200(workingset|node=0|zone=1|lastcpupid=0x7ff) page_type: f5(slab) raw: 00fff00000000200 ffff88813fe3fa00 ffffea0000cf1710 ffffea0001560150 raw: ffff88806877f700 000000080010000f 00000000f5000000 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 0xd2820(GFP_ATOMIC|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 13, tgid 13 (kworker/u8:1), ts 367023860741, free_ts 359198003073 set_page_owner include/linux/page_owner.h:32 [inline] post_alloc_hook+0x1f9/0x250 mm/page_alloc.c:1859 prep_new_page mm/page_alloc.c:1867 [inline] get_page_from_freelist+0x21fa/0x2270 mm/page_alloc.c:3946 __alloc_frozen_pages_noprof+0x18d/0x380 mm/page_alloc.c:5304 alloc_slab_page mm/slub.c:3294 [inline] allocate_slab+0x79/0x5e0 mm/slub.c:3408 new_slab mm/slub.c:3454 [inline] refill_objects+0x2d5/0x350 mm/slub.c:7338 refill_sheaf mm/slub.c:2832 [inline] __pcs_replace_empty_main+0x2bf/0x6b0 mm/slub.c:4703 alloc_from_pcs mm/slub.c:4801 [inline] slab_alloc_node mm/slub.c:4933 [inline] __kmalloc_cache_noprof+0x3a7/0x660 mm/slub.c:5511 _kmalloc_noprof include/linux/slab.h:969 [inline] __hw_addr_create+0x62/0x240 net/core/dev_addr_lists.c:62 __hw_addr_add_ex+0x1ce/0x520 net/core/dev_addr_lists.c:120 __dev_mc_add net/core/dev_addr_lists.c:998 [inline] dev_mc_add+0xa1/0x120 net/core/dev_addr_lists.c:1016 igmp6_group_added+0x22b/0x7c0 net/ipv6/mcast.c:681 __ipv6_dev_mc_inc+0x88e/0xa40 net/ipv6/mcast.c:972 addrconf_join_solict net/ipv6/addrconf.c:2262 [inline] addrconf_dad_begin net/ipv6/addrconf.c:4134 [inline] addrconf_dad_work+0x3fc/0x15c0 net/ipv6/addrconf.c:4262 process_one_work kernel/workqueue.c:3322 [inline] process_scheduled_works+0xa8e/0x14e0 kernel/workqueue.c:3405 worker_thread+0xa47/0xfb0 kernel/workqueue.c:3486 kthread+0x388/0x470 kernel/kthread.c:436 page last free pid 5654 tgid 5654 stack trace: reset_page_owner include/linux/page_owner.h:25 [inline] __free_pages_prepare mm/page_alloc.c:1406 [inline] free_unref_folios+0xd84/0x14a0 mm/page_alloc.c:3011 folios_put_refs+0x9e9/0xb30 mm/swap.c:1057 free_pages_and_swap_cache+0x2ba/0x490 mm/swap_state.c:586 __tlb_batch_free_encoded_pages mm/mmu_gather.c:138 [inline] tlb_batch_pages_flush mm/mmu_gather.c:151 [inline] tlb_flush_mmu_free mm/mmu_gather.c:417 [inline] tlb_flush_mmu+0x6d3/0xa30 mm/mmu_gather.c:424 tlb_finish_mmu+0xf4/0x220 mm/mmu_gather.c:549 unmap_region+0x2a5/0x330 mm/vma.c:491 vms_clear_ptes mm/vma.c:1303 [inline] vms_complete_munmap_vmas+0x427/0xbe0 mm/vma.c:1345 do_vmi_align_munmap+0x3b7/0x4b0 mm/vma.c:1604 do_vmi_munmap+0x252/0x2d0 mm/vma.c:1652 __vm_munmap+0x241/0x3e0 mm/vma.c:3288 __do_sys_munmap mm/mmap.c:1079 [inline] __se_sys_munmap mm/mmap.c:1076 [inline] __x64_sys_munmap+0x60/0x70 mm/mmap.c:1076 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0x174/0x580 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f Memory state around the buggy address: ffff88806877fe80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ffff88806877ff00: 00 00 00 00 00 00 00 00 00 00 00 00 00 fc fc fc >ffff88806877ff80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff888068780000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff888068780080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ==================================================================