syzbot
BUG: unable to handle kernel NULL pointer dereference in handle_ep_small
Status:
moderation: reported on 2026/08/06 00:02
Subsystems:
usb
Labels:
prio:high
[Documentation on labels]
Reported-by: syzbot+227fa0a95a947e66b1a1@syzkaller.appspotmail.com
First crash: 5d13h, last: 4d06h
Sample crash report:
BUG: kernel NULL pointer dereference, address: 000000000000000c
#PF: supervisor read access in kernel mode
#PF: error_code(0x0000) - not-present page
PGD 0 P4D 0
Oops: Oops: 0000 [#1] SMP KASAN NOPTI
CPU: 1 UID: 0 PID: 7363 Comm: modprobe Not tainted syzkaller #0 PREEMPT(full)
Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS 1.16.3-debian-1.16.3-2 04/01/2014
RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline]
RIP: 0010:handle_ep_small+0x84/0x1ca0 drivers/usb/gadget/udc/net2280.c:2530
Code: 37 fa 48 8d 43 50 48 89 c2 48 89 44 24 18 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 28 18 00 00 48 8b 43 50 <44> 8b 68 0c 48 8d 7b 78 44 89 6c 24 20 48 b8 00 00 00 00 00 fc ff
RSP: 0018:ffffc900006a0d70 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff88805d6ae928 RCX: ffffffff87d2b586
RDX: 1ffff1100bad5d2f RSI: ffffffff87d2965c RDI: ffff88805d6ae928
RBP: ffff88805d6ae9a8 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000000000020 R11: 0000000000000000 R12: ffffffffffffff88
R13: 0000000000000040 R14: ffff88805d6ae000 R15: 0000000000000020
FS: 0000000000000000(0000) GS:ffff8880d5ed8000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000000000000c CR3: 0000000056a3b000 CR4: 0000000000352ef0
Call Trace:
<IRQ>
handle_stat0_irqs drivers/usb/gadget/udc/net2280.c:3341 [inline]
net2280_irq+0x854/0x4ea0 drivers/usb/gadget/udc/net2280.c:3552
__handle_irq_event_percpu+0x232/0x880 kernel/irq/handle.c:209
handle_irq_event_percpu kernel/irq/handle.c:246 [inline]
handle_irq_event+0xab/0x1e0 kernel/irq/handle.c:263
handle_fasteoi_irq+0x323/0xb60 kernel/irq/chip.c:768
generic_handle_irq_desc include/linux/irqdesc.h:188 [inline]
handle_irq arch/x86/kernel/irq.c:209 [inline]
call_irq_handler arch/x86/kernel/irq.c:265 [inline]
__common_interrupt+0xd8/0x2f0 arch/x86/kernel/irq.c:280
common_interrupt+0xb9/0xe0 arch/x86/kernel/irq.c:273
</IRQ>
<TASK>
asm_common_interrupt+0x26/0x40 arch/x86/include/asm/idtentry.h:665
RIP: 0010:lock_acquire+0x5e/0x370 kernel/locking/lockdep.c:5872
Code: 05 3b 8d 7e 12 83 f8 07 0f 87 da 00 00 00 48 0f a3 05 c6 94 3c 0f 0f 82 ac 02 00 00 8b 35 8e c8 3c 0f 85 f6 0f 85 c7 00 00 00 <48> 8b 44 24 30 65 48 2b 05 dd 8c 7e 12 0f 85 ec 02 00 00 48 83 c4
RSP: 0018:ffffc90003417930 EFLAGS: 00000206
RAX: 0000000000000046 RBX: 0000000000000000 RCX: 0000000000000000
RDX: 0000000000000000 RSI: ffffffff8e182264 RDI: ffffffff8c402680
RBP: ffffffff8ebe8200 R08: 00000000ffffffff R09: 0000000000000007
R10: 0000000000000200 R11: 0000000000000000 R12: 0000000000000002
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
rcu_lock_acquire include/linux/rcupdate.h:300 [inline]
rcu_read_lock include/linux/rcupdate.h:840 [inline]
avc_has_perm_noaudit+0x67/0x3b0 security/selinux/avc.c:1156
avc_has_perm+0xbd/0x1e0 security/selinux/avc.c:1195
inode_has_perm+0x166/0x1d0 security/selinux/hooks.c:1692
__file_has_perm+0x39c/0x460 security/selinux/hooks.c:1798
__file_map_prot_check+0x24e/0x830 security/selinux/hooks.c:4012
file_map_prot_check security/selinux/hooks.c:4022 [inline]
selinux_mmap_file_common security/selinux/hooks.c:4054 [inline]
selinux_mmap_file+0x14d/0x1c0 security/selinux/hooks.c:4061
security_mmap_file+0xc3/0x9b0 security/security.c:2581
vm_mmap_pgoff+0xec/0x470 mm/util.c:575
ksys_mmap_pgoff+0x3cb/0x610 mm/mmap.c:606
__do_sys_mmap arch/x86/kernel/sys_x86_64.c:89 [inline]
__se_sys_mmap arch/x86/kernel/sys_x86_64.c:82 [inline]
__x64_sys_mmap+0x125/0x190 arch/x86/kernel/sys_x86_64.c:82
do_syscall_x64 arch/x86/entry/syscall_64.c:63 [inline]
do_syscall_64+0x115/0x870 arch/x86/entry/syscall_64.c:94
entry_SYSCALL_64_after_hwframe+0x77/0x7f
RIP: 0033:0x7fc913ab4242
Code: 08 00 04 00 00 eb e2 90 41 f7 c1 ff 0f 00 00 75 27 55 89 cd 53 48 89 fb 48 85 ff 74 33 41 89 ea 48 89 df b8 09 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 5e 5b 5d c3 0f 1f 00 c7 05 46 40 01 00 16 00
RSP: 002b:00007ffd80077db8 EFLAGS: 00000206 ORIG_RAX: 0000000000000009
RAX: ffffffffffffffda RBX: 00007fc913722000 RCX: 00007fc913ab4242
RDX: 0000000000000005 RSI: 0000000000037000 RDI: 00007fc913722000
RBP: 0000000000000812 R08: 0000000000000000 R09: 0000000000003000
R10: 0000000000000812 R11: 0000000000000206 R12: 00007ffd80077e08
R13: 00007fc91378b6b0 R14: 00007ffd800781f0 R15: 00000fffb000efba
</TASK>
Modules linked in:
CR2: 000000000000000c
---[ end trace 0000000000000000 ]---
RIP: 0010:readl arch/x86/include/asm/io.h:59 [inline]
RIP: 0010:handle_ep_small+0x84/0x1ca0 drivers/usb/gadget/udc/net2280.c:2530
Code: 37 fa 48 8d 43 50 48 89 c2 48 89 44 24 18 48 b8 00 00 00 00 00 fc ff df 48 c1 ea 03 80 3c 02 00 0f 85 28 18 00 00 48 8b 43 50 <44> 8b 68 0c 48 8d 7b 78 44 89 6c 24 20 48 b8 00 00 00 00 00 fc ff
RSP: 0018:ffffc900006a0d70 EFLAGS: 00010046
RAX: 0000000000000000 RBX: ffff88805d6ae928 RCX: ffffffff87d2b586
RDX: 1ffff1100bad5d2f RSI: ffffffff87d2965c RDI: ffff88805d6ae928
RBP: ffff88805d6ae9a8 R08: 0000000000000005 R09: 0000000000000000
R10: 0000000000000020 R11: 0000000000000000 R12: ffffffffffffff88
R13: 0000000000000040 R14: ffff88805d6ae000 R15: 0000000000000020
FS: 0000000000000000(0000) GS:ffff8880d5ed8000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000000000000000c CR3: 0000000056a3b000 CR4: 0000000000352ef0
----------------
Code disassembly (best guess), 1 bytes skipped:
0: fa cli
1: 48 8d 43 50 lea 0x50(%rbx),%rax
5: 48 89 c2 mov %rax,%rdx
8: 48 89 44 24 18 mov %rax,0x18(%rsp)
d: 48 b8 00 00 00 00 00 movabs $0xdffffc0000000000,%rax
14: fc ff df
17: 48 c1 ea 03 shr $0x3,%rdx
1b: 80 3c 02 00 cmpb $0x0,(%rdx,%rax,1)
1f: 0f 85 28 18 00 00 jne 0x184d
25: 48 8b 43 50 mov 0x50(%rbx),%rax
* 29: 44 8b 68 0c mov 0xc(%rax),%r13d <-- trapping instruction
2d: 48 8d 7b 78 lea 0x78(%rbx),%rdi
31: 44 89 6c 24 20 mov %r13d,0x20(%rsp)
36: 48 rex.W
37: b8 00 00 00 00 mov $0x0,%eax
3c: 00 fc add %bh,%ah
3e: ff .byte 0xff
* Struck through repros no longer work on HEAD.