================================================================== BUG: KASAN: slab-out-of-bounds in mcp2221_raw_event+0x101c/0x1090 drivers/hid/hid-mcp2221.c:964 Read of size 1 at addr ffff8881355b3fff by task kworker/u8:2/32392 CPU: 1 UID: 0 PID: 32392 Comm: kworker/u8:2 Not tainted syzkaller #0 PREEMPT(lazy) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/09/2026 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x100/0x190 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline] print_report+0x13d/0x4b0 mm/kasan/report.c:482 kasan_report+0xdf/0x1c0 mm/kasan/report.c:595 mcp2221_raw_event+0x101c/0x1090 drivers/hid/hid-mcp2221.c:964 __hid_input_report.constprop.0+0x319/0x470 drivers/hid/hid-core.c:2161 hid_irq_in+0x55d/0x710 drivers/hid/usbhid/hid-core.c:287 __usb_hcd_giveback_urb+0x38d/0x610 drivers/usb/core/hcd.c:1657 usb_hcd_giveback_urb+0x3ca/0x4a0 drivers/usb/core/hcd.c:1741 dummy_timer+0xda1/0x36c0 drivers/usb/gadget/udc/dummy_hcd.c:2005 __run_hrtimer kernel/time/hrtimer.c:2032 [inline] __hrtimer_run_queues+0x462/0x9c0 kernel/time/hrtimer.c:2096 hrtimer_run_softirq+0x17d/0x2c0 kernel/time/hrtimer.c:2113 handle_softirqs+0x1dd/0x990 kernel/softirq.c:622 __do_softirq kernel/softirq.c:656 [inline] invoke_softirq kernel/softirq.c:496 [inline] __irq_exit_rcu+0x160/0x210 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+0x8f/0xb0 arch/x86/kernel/apic/apic.c:1062 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:674 RIP: 0010:0xffffffffa0000c30 Code: cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc cc 41 ff e4 cc 41 ff e4 cc 41 ff e4 cc 41 ff e4 cc <41> ff e4 cc 41 ff e4 cc 41 ff e5 cc 41 ff e5 cc cc cc cc cc cc cc RSP: 0018:ffffc90002e974d8 EFLAGS: 00000282 RAX: ffffffff817c73b9 RBX: ffffc90002e974e0 RCX: ffffc90002e97434 RDX: 1ffff920005d2ea5 RSI: ffffffff817c73b9 RDI: ffffc90002e975a0 RBP: ffffc90002e97570 R08: 0000000000000001 R09: 0000000000000007 R10: 0000000000000200 R11: 00000000000125d8 R12: ffffffff819e9580 R13: ffffc90002e975a0 R14: 0000000000000000 R15: ffff888116a33c00 Allocated by task 5226: kasan_save_stack+0x30/0x50 mm/kasan/common.c:57 kasan_save_track+0x14/0x30 mm/kasan/common.c:78 poison_kmalloc_redzone mm/kasan/common.c:398 [inline] __kasan_kmalloc+0x8f/0xa0 mm/kasan/common.c:415 kasan_kmalloc include/linux/kasan.h:263 [inline] __kmalloc_cache_noprof+0x35e/0x670 mm/slub.c:5515 _kmalloc_noprof include/linux/slab.h:969 [inline] _kzalloc_noprof include/linux/slab.h:1290 [inline] snd_info_create_entry+0x51/0x400 sound/core/info.c:666 snd_info_create_module_entry sound/core/info.c:704 [inline] create_subdir sound/core/info.c:414 [inline] snd_info_card_create+0xdf/0x2a0 sound/core/info.c:488 snd_card_init+0x8b6/0x11b0 sound/core/init.c:356 snd_card_new+0x99/0x110 sound/core/init.c:188 snd_usb_audio_create sound/usb/card.c:763 [inline] usb_audio_probe+0x16be/0x3b10 sound/usb/card.c:977 usb_probe_interface+0x303/0x8f0 drivers/usb/core/driver.c:396 call_driver_probe drivers/base/dd.c:628 [inline] really_probe+0x241/0xa60 drivers/base/dd.c:706 __driver_probe_device+0x20e/0x450 drivers/base/dd.c:868 driver_probe_device+0x4a/0x140 drivers/base/dd.c:898 __device_attach_driver+0x1df/0x320 drivers/base/dd.c:1026 bus_for_each_drv+0x159/0x1e0 drivers/base/bus.c:500 __device_attach+0x1e4/0x4d0 drivers/base/dd.c:1098 device_initial_probe+0xaf/0xd0 drivers/base/dd.c:1153 bus_probe_device+0x64/0x160 drivers/base/bus.c:620 device_add+0x121d/0x1970 drivers/base/core.c:3772 usb_set_configuration+0xd97/0x1c60 drivers/usb/core/message.c:2268 usb_generic_driver_probe+0xa1/0xe0 drivers/usb/core/generic.c:250 usb_probe_device+0xef/0x400 drivers/usb/core/driver.c:291 call_driver_probe drivers/base/dd.c:628 [inline] really_probe+0x241/0xa60 drivers/base/dd.c:706 __driver_probe_device+0x20e/0x450 drivers/base/dd.c:868 driver_probe_device+0x4a/0x140 drivers/base/dd.c:898 __device_attach_driver+0x1df/0x320 drivers/base/dd.c:1026 bus_for_each_drv+0x159/0x1e0 drivers/base/bus.c:500 __device_attach+0x1e4/0x4d0 drivers/base/dd.c:1098 device_initial_probe+0xaf/0xd0 drivers/base/dd.c:1153 bus_probe_device+0x64/0x160 drivers/base/bus.c:620 device_add+0x121d/0x1970 drivers/base/core.c:3772 usb_new_device.cold+0x685/0x115c drivers/usb/core/hub.c:2695 hub_port_connect drivers/usb/core/hub.c:5567 [inline] hub_port_connect_change drivers/usb/core/hub.c:5707 [inline] port_event drivers/usb/core/hub.c:5871 [inline] hub_event+0x314d/0x4af0 drivers/usb/core/hub.c:5953 process_one_work+0xa23/0x1940 kernel/workqueue.c:3322 process_scheduled_works kernel/workqueue.c:3405 [inline] worker_thread+0x5ef/0xe50 kernel/workqueue.c:3486 kthread+0x370/0x450 kernel/kthread.c:436 ret_from_fork+0x69a/0xc80 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 The buggy address belongs to the object at ffff8881355b3e00 which belongs to the cache kmalloc-256 of size 256 The buggy address is located 255 bytes to the right of allocated 256-byte region [ffff8881355b3e00, ffff8881355b3f00) The buggy address belongs to the physical page: page: refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1355b2 head: order:1 mapcount:0 entire_mapcount:0 nr_pages_mapped:0 pincount:0 flags: 0x200000000000040(head|node=0|zone=2) page_type: f5(slab) raw: 0200000000000040 ffff888100041b40 dead000000000100 dead000000000122 raw: 0000000000000000 0000000800100010 00000000f5000000 0000000000000000 head: 0200000000000040 ffff888100041b40 dead000000000100 dead000000000122 head: 0000000000000000 0000000800100010 00000000f5000000 0000000000000000 head: 0200000000000001 ffffffffffffff81 00000000ffffffff 00000000ffffffff head: ffff8881355b3500 0000000000000000 00000000ffffffff 0000000000000002 page dumped because: kasan: bad access detected page_owner tracks the page as allocated page last allocated via order 1, migratetype Unmovable, gfp_mask 0xd2040(__GFP_IO|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC), pid 14906, tgid 14906 (udevd), ts 1647033421016, free_ts 1617847903000 set_page_owner include/linux/page_owner.h:32 [inline] post_alloc_hook+0xfd/0x120 mm/page_alloc.c:1859 prep_new_page mm/page_alloc.c:1867 [inline] get_page_from_freelist+0xf25/0x3400 mm/page_alloc.c:3946 __alloc_frozen_pages_noprof+0x28f/0x2b90 mm/page_alloc.c:5304 alloc_slab_page mm/slub.c:3294 [inline] allocate_slab mm/slub.c:3408 [inline] new_slab+0xa2/0x670 mm/slub.c:3454 refill_objects+0xe3/0x410 mm/slub.c:7338 refill_sheaf mm/slub.c:2832 [inline] __pcs_replace_empty_main+0x376/0x680 mm/slub.c:4703 alloc_from_pcs mm/slub.c:4801 [inline] slab_alloc_node mm/slub.c:4933 [inline] __kmalloc_cache_noprof+0x50e/0x670 mm/slub.c:5511 _kmalloc_noprof include/linux/slab.h:969 [inline] inode_doinit_use_xattr+0x54/0x330 security/selinux/hooks.c:1377 inode_doinit_with_dentry+0x10e6/0x1320 security/selinux/hooks.c:1572 selinux_d_instantiate+0x26/0x40 security/selinux/hooks.c:6654 security_d_instantiate+0x62/0xc0 security/security.c:3704 d_splice_alias_ops+0xd7/0x15c0 fs/dcache.c:3244 kernfs_iop_lookup+0x23f/0x2d0 fs/kernfs/dir.c:1288 __lookup_slow+0x155/0x320 fs/namei.c:1919 lookup_slow+0x50/0x70 fs/namei.c:1936 walk_component fs/namei.c:2282 [inline] link_path_walk+0x1377/0x1cc0 fs/namei.c:2656 page last free pid 19799 tgid 19787 stack trace: reset_page_owner include/linux/page_owner.h:25 [inline] __free_pages_prepare mm/page_alloc.c:1406 [inline] __free_frozen_pages+0x716/0xf50 mm/page_alloc.c:2950 __pagetable_free include/linux/mm.h:3695 [inline] pagetable_free include/linux/mm.h:3719 [inline] pagetable_dtor_free include/linux/mm.h:3818 [inline] __pgd_free include/asm-generic/pgalloc.h:303 [inline] _pgd_free arch/x86/mm/pgtable.c:308 [inline] pgd_free+0x3eb/0x540 arch/x86/mm/pgtable.c:370 mm_free_pgd kernel/fork.c:590 [inline] __mmdrop+0x139/0x4a0 kernel/fork.c:733 mmdrop include/linux/sched/mm.h:55 [inline] __mmput kernel/fork.c:1194 [inline] mmput+0x385/0x430 kernel/fork.c:1205 exit_mm kernel/exit.c:610 [inline] do_exit+0x833/0x2a50 kernel/exit.c:992 do_group_exit+0xd5/0x2a0 kernel/exit.c:1147 get_signal+0x1ec7/0x21e0 kernel/signal.c:3038 arch_do_signal_or_restart+0x91/0x7e0 arch/x86/kernel/signal.c:337 __exit_to_user_mode_loop kernel/entry/common.c:66 [inline] exit_to_user_mode_loop+0xd2/0x530 kernel/entry/common.c:101 __exit_to_user_mode_prepare include/linux/irq-entry-common.h:207 [inline] syscall_exit_to_user_mode_prepare include/linux/irq-entry-common.h:230 [inline] syscall_exit_to_user_mode include/linux/entry-common.h:318 [inline] ret_from_fork+0x6cd/0xc80 arch/x86/kernel/process.c:167 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 Memory state around the buggy address: ffff8881355b3e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8881355b3f00: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc >ffff8881355b3f80: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc ^ ffff8881355b4000: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ffff8881355b4080: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ================================================================== ---------------- Code disassembly (best guess): 0: cc int3 1: cc int3 2: cc int3 3: cc int3 4: cc int3 5: cc int3 6: cc int3 7: cc int3 8: cc int3 9: cc int3 a: cc int3 b: cc int3 c: cc int3 d: cc int3 e: cc int3 f: cc int3 10: cc int3 11: cc int3 12: cc int3 13: cc int3 14: cc int3 15: cc int3 16: cc int3 17: cc int3 18: cc int3 19: cc int3 1a: 41 ff e4 jmp *%r12 1d: cc int3 1e: 41 ff e4 jmp *%r12 21: cc int3 22: 41 ff e4 jmp *%r12 25: cc int3 26: 41 ff e4 jmp *%r12 29: cc int3 * 2a: 41 ff e4 jmp *%r12 <-- trapping instruction 2d: cc int3 2e: 41 ff e4 jmp *%r12 31: cc int3 32: 41 ff e5 jmp *%r13 35: cc int3 36: 41 ff e5 jmp *%r13 39: cc int3 3a: cc int3 3b: cc int3 3c: cc int3 3d: cc int3 3e: cc int3 3f: cc int3