==================================================================
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