syzbot
general protection fault in emi26_probe
Status:
upstream: reported C repro on 2026/07/28 11:32
Reported-by: syzbot+fc590201ba6fff657dbb@syzkaller.appspotmail.com
First crash: 7d10h, last: 2d08h
Sample crash report:
emi26 - firmware loader 3-1:1.0: emi26_probe start
general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007]
CPU: 0 PID: 4382 Comm: kworker/0:9 Not tainted syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/24/2026
Workqueue: usb_hub_wq hub_event
RIP: 0010:ihex_binrec_size include/linux/ihex.h:26 [inline]
RIP: 0010:__ihex_next_binrec include/linux/ihex.h:35 [inline]
RIP: 0010:ihex_validate_fw include/linux/ihex.h:54 [inline]
RIP: 0010:request_ihex_firmware include/linux/ihex.h:74 [inline]
RIP: 0010:emi26_load_firmware drivers/usb/misc/emi26.c:86 [inline]
RIP: 0010:emi26_probe+0x282/0x1610 drivers/usb/misc/emi26.c:232
Code: ff 89 de e8 60 f7 56 f7 85 db 0f 84 cc 01 00 00 e8 73 f4 56 f7 48 bb 00 00 00 00 00 fc ff df 49 8d 7d 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 75 47 49 8d 7d 05 48 89 f8 48 c1 e8 03 0f b6 04
RSP: 0018:ffffc90003386ee0 EFLAGS: 00010247
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff888077740000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000004
RBP: ffffc90003387020 R08: ffffffff90b102af R09: 1ffffffff2162055
R10: dffffc0000000000 R11: fffffbfff2162056 R12: fffffffffffffffa
R13: 0000000000000000 R14: 1fffffffffffffff R15: 1fffffffffffffff
FS: 0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f4f07feb700 CR3: 0000000026872000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
<TASK>
usb_probe_interface+0x5be/0xae0 drivers/usb/core/driver.c:396
call_driver_probe drivers/base/dd.c:-1 [inline]
really_probe+0x24a/0xb40 drivers/base/dd.c:638
__driver_probe_device+0x1f5/0x390 drivers/base/dd.c:804
driver_probe_device+0x4f/0x420 drivers/base/dd.c:834
__device_attach_driver+0x2c6/0x510 drivers/base/dd.c:962
bus_for_each_drv+0x184/0x210 drivers/base/bus.c:429
__device_attach+0x2a7/0x480 drivers/base/dd.c:1034
bus_probe_device+0xba/0x1d0 drivers/base/bus.c:489
device_add+0xbcf/0x1050 drivers/base/core.c:3712
usb_set_configuration+0x19d5/0x2030 drivers/usb/core/message.c:2223
usb_generic_driver_probe+0x89/0x150 drivers/usb/core/generic.c:238
usb_probe_device+0x126/0x250 drivers/usb/core/driver.c:293
call_driver_probe drivers/base/dd.c:-1 [inline]
really_probe+0x24a/0xb40 drivers/base/dd.c:638
__driver_probe_device+0x1f5/0x390 drivers/base/dd.c:804
driver_probe_device+0x4f/0x420 drivers/base/dd.c:834
__device_attach_driver+0x2c6/0x510 drivers/base/dd.c:962
bus_for_each_drv+0x184/0x210 drivers/base/bus.c:429
__device_attach+0x2a7/0x480 drivers/base/dd.c:1034
bus_probe_device+0xba/0x1d0 drivers/base/bus.c:489
device_add+0xbcf/0x1050 drivers/base/core.c:3712
usb_new_device+0xa01/0x15e0 drivers/usb/core/hub.c:2659
hub_port_connect drivers/usb/core/hub.c:5517 [inline]
hub_port_connect_change drivers/usb/core/hub.c:5657 [inline]
port_event drivers/usb/core/hub.c:5817 [inline]
hub_event+0x2b2f/0x5200 drivers/usb/core/hub.c:5899
process_one_work+0x8ab/0x1160 kernel/workqueue.c:2292
worker_thread+0xaf5/0x12a0 kernel/workqueue.c:2439
kthread+0x29d/0x330 kernel/kthread.c:376
ret_from_fork+0x1f/0x30 arch/x86/entry/entry_64.S:295
</TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:ihex_binrec_size include/linux/ihex.h:26 [inline]
RIP: 0010:__ihex_next_binrec include/linux/ihex.h:35 [inline]
RIP: 0010:ihex_validate_fw include/linux/ihex.h:54 [inline]
RIP: 0010:request_ihex_firmware include/linux/ihex.h:74 [inline]
RIP: 0010:emi26_load_firmware drivers/usb/misc/emi26.c:86 [inline]
RIP: 0010:emi26_probe+0x282/0x1610 drivers/usb/misc/emi26.c:232
Code: ff 89 de e8 60 f7 56 f7 85 db 0f 84 cc 01 00 00 e8 73 f4 56 f7 48 bb 00 00 00 00 00 fc ff df 49 8d 7d 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 75 47 49 8d 7d 05 48 89 f8 48 c1 e8 03 0f b6 04
RSP: 0018:ffffc90003386ee0 EFLAGS: 00010247
RAX: 0000000000000000 RBX: dffffc0000000000 RCX: ffff888077740000
RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000004
RBP: ffffc90003387020 R08: ffffffff90b102af R09: 1ffffffff2162055
R10: dffffc0000000000 R11: fffffbfff2162056 R12: fffffffffffffffa
R13: 0000000000000000 R14: 1fffffffffffffff R15: 1fffffffffffffff
FS: 0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f91b9d5da08 CR3: 000000002e7a9000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
----------------
Code disassembly (best guess):
0: ff 89 de e8 60 f7 decl -0x89f1722(%rcx)
6: 56 push %rsi
7: f7 85 db 0f 84 cc 01 testl $0xe8000001,-0x337bf025(%rbp)
e: 00 00 e8
11: 73 f4 jae 0x7
13: 56 push %rsi
14: f7 48 bb 00 00 00 00 testl $0x0,-0x45(%rax)
1b: 00 fc add %bh,%ah
1d: ff lcall (bad)
1e: df 49 8d fisttps -0x73(%rcx)
21: 7d 04 jge 0x27
23: 48 89 f8 mov %rdi,%rax
26: 48 c1 e8 03 shr $0x3,%rax
* 2a: 0f b6 04 18 movzbl (%rax,%rbx,1),%eax <-- trapping instruction
2e: 84 c0 test %al,%al
30: 75 47 jne 0x79
32: 49 8d 7d 05 lea 0x5(%r13),%rdi
36: 48 89 f8 mov %rdi,%rax
39: 48 c1 e8 03 shr $0x3,%rax
3d: 0f .byte 0xf
3e: b6 04 mov $0x4,%dh
* Struck through repros no longer work on HEAD.