================================================================== BUG: KASAN: null-ptr-deref in mcp2221_raw_event+0xc1f/0x1030 drivers/hid/hid-mcp2221.c:910 Write of size 237 at addr 0000000000000000 by task modprobe/8718 CPU: 1 UID: 0 PID: 8718 Comm: modprobe Not tainted syzkaller #0 PREEMPT(voluntary) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/12/2025 Call Trace: __dump_stack lib/dump_stack.c:94 [inline] dump_stack_lvl+0x116/0x1f0 lib/dump_stack.c:120 kasan_report+0xe0/0x110 mm/kasan/report.c:595 check_region_inline mm/kasan/generic.c:183 [inline] kasan_check_range+0x100/0x1b0 mm/kasan/generic.c:189 __asan_memcpy+0x3c/0x60 mm/kasan/shadow.c:106 mcp2221_raw_event+0xc1f/0x1030 drivers/hid/hid-mcp2221.c:910 __hid_input_report.constprop.0+0x314/0x450 drivers/hid/hid-core.c:2130 hid_irq_in+0x35e/0x870 drivers/hid/usbhid/hid-core.c:286 __usb_hcd_giveback_urb+0x38b/0x610 drivers/usb/core/hcd.c:1661 usb_hcd_giveback_urb+0x39b/0x450 drivers/usb/core/hcd.c:1745 dummy_timer+0x1814/0x3a30 drivers/usb/gadget/udc/dummy_hcd.c:1995 __run_hrtimer kernel/time/hrtimer.c:1761 [inline] __hrtimer_run_queues+0x1ff/0xad0 kernel/time/hrtimer.c:1825 hrtimer_run_softirq+0x17d/0x350 kernel/time/hrtimer.c:1842 handle_softirqs+0x208/0x8d0 kernel/softirq.c:579 __do_softirq kernel/softirq.c:613 [inline] invoke_softirq kernel/softirq.c:453 [inline] __irq_exit_rcu+0xfa/0x160 kernel/softirq.c:680 irq_exit_rcu+0x9/0x30 kernel/softirq.c:696 instr_sysvec_apic_timer_interrupt arch/x86/kernel/apic/apic.c:1050 [inline] sysvec_apic_timer_interrupt+0x90/0xb0 arch/x86/kernel/apic/apic.c:1050 asm_sysvec_apic_timer_interrupt+0x1a/0x20 arch/x86/include/asm/idtentry.h:702 RIP: 0010:bytes_is_nonzero mm/kasan/generic.c:86 [inline] RIP: 0010:memory_is_nonzero mm/kasan/generic.c:104 [inline] RIP: 0010:memory_is_poisoned_n mm/kasan/generic.c:129 [inline] RIP: 0010:memory_is_poisoned mm/kasan/generic.c:161 [inline] RIP: 0010:check_region_inline mm/kasan/generic.c:180 [inline] RIP: 0010:kasan_check_range+0x14b/0x1b0 mm/kasan/generic.c:189 Code: d3 48 39 d0 74 11 80 38 00 74 ef 4d 8d 1c 2c 48 89 c2 48 85 c0 75 ad 48 89 da 4c 89 d8 4c 29 da e9 46 ff ff ff 48 85 d2 74 18 <48> 01 ea eb 09 48 83 c0 01 48 39 d0 74 0a 80 38 00 74 f2 e9 75 ff RSP: 0018:ffffc9001619f5e8 EFLAGS: 00000202 RAX: fffffbfff27a2218 RBX: fffffbfff27a2219 RCX: ffffffff8736fe9e RDX: 0000000000000001 RSI: 0000000000000004 RDI: ffffffff93d110c0 RBP: fffffbfff27a2218 R08: 0000000000000001 R09: fffffbfff27a2218 R10: ffffffff93d110c3 R11: 0000000000000000 R12: ffff888128661e0c R13: 0000000000000003 R14: ffff888128661e0c R15: 0000000000000001 instrument_atomic_read_write include/linux/instrumented.h:96 [inline] atomic_inc include/linux/atomic/atomic-instrumented.h:435 [inline] mas_validate_parent_slot lib/maple_tree.c:7413 [inline] mt_validate+0x7ce/0x4210 lib/maple_tree.c:7608 validate_mm+0xb0/0x570 mm/vma.c:651 __split_vma+0xc0e/0x1040 mm/vma.c:569 split_vma mm/vma.c:598 [inline] vma_modify+0xadb/0x21a0 mm/vma.c:1631 vma_modify_flags+0x1b0/0x250 mm/vma.c:1649 mprotect_fixup+0x1df/0xb40 mm/mprotect.c:816 do_mprotect_pkey+0x9ca/0xd50 mm/mprotect.c:990 __do_sys_mprotect mm/mprotect.c:1011 [inline] __se_sys_mprotect mm/mprotect.c:1008 [inline] __x64_sys_mprotect+0x78/0xc0 mm/mprotect.c:1008 do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline] do_syscall_64+0xcd/0x4b0 arch/x86/entry/syscall_64.c:94 entry_SYSCALL_64_after_hwframe+0x77/0x7f RIP: 0033:0x7f4824e482c7 Code: 89 3d fd 3f 01 00 eb 90 0f 1f 00 f7 d8 89 05 f0 3f 01 00 48 c7 c0 ff ff ff ff eb 91 0f 1f 80 00 00 00 00 b8 0a 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 8d 0d c9 3f 01 00 f7 d8 89 01 48 83 RSP: 002b:00007ffd3b1a9338 EFLAGS: 00000206 ORIG_RAX: 000000000000000a RAX: ffffffffffffffda RBX: 00007f4824b1f0c0 RCX: 00007f4824e482c7 RDX: 0000000000000001 RSI: 0000000000001000 RDI: 00007f4824b1c000 RBP: 00007ffd3b1a9600 R08: 0000000000000000 R09: 00007f4824bbac90 R10: 00007f4824b1f0c0 R11: 0000000000000206 R12: 0000000000000030 R13: 000000a1e01ab302 R14: 0000000000000000 R15: 00007f4824e5c310 ================================================================== ---------------- Code disassembly (best guess): 0: d3 48 39 rorl %cl,0x39(%rax) 3: d0 74 11 80 shlb -0x80(%rcx,%rdx,1) 7: 38 00 cmp %al,(%rax) 9: 74 ef je 0xfffffffa b: 4d 8d 1c 2c lea (%r12,%rbp,1),%r11 f: 48 89 c2 mov %rax,%rdx 12: 48 85 c0 test %rax,%rax 15: 75 ad jne 0xffffffc4 17: 48 89 da mov %rbx,%rdx 1a: 4c 89 d8 mov %r11,%rax 1d: 4c 29 da sub %r11,%rdx 20: e9 46 ff ff ff jmp 0xffffff6b 25: 48 85 d2 test %rdx,%rdx 28: 74 18 je 0x42 * 2a: 48 01 ea add %rbp,%rdx <-- trapping instruction 2d: eb 09 jmp 0x38 2f: 48 83 c0 01 add $0x1,%rax 33: 48 39 d0 cmp %rdx,%rax 36: 74 0a je 0x42 38: 80 38 00 cmpb $0x0,(%rax) 3b: 74 f2 je 0x2f 3d: e9 .byte 0xe9 3e: 75 ff jne 0x3f