usb 1-1: SerialNumber: syz emi26 - firmware loader 1-1:1.0: emi26_probe start Oops: general protection fault, probably for non-canonical address 0xdffffc0000000000: 0000 [#1] SMP KASAN NOPTI KASAN: null-ptr-deref in range [0x0000000000000000-0x0000000000000007] CPU: 0 UID: 0 PID: 5635 Comm: kworker/0:4 Not tainted syzkaller #0 PREEMPT(full) Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 07/16/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+0x283/0x1690 drivers/usb/misc/emi26.c:232 Code: ff 89 de e8 bf 9d 98 00 85 db 0f 84 d9 01 00 00 e8 12 9a 98 00 48 bb 00 00 00 00 00 fc ff df 49 8d 7e 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 75 47 49 8d 7e 05 48 89 f8 48 c1 e8 03 0f b6 04 RSP: 0018:ffffc90002f86d60 EFLAGS: 00010257 RAX: 0000000000000000 RBX: dffffc0000000000 RCX: 0000000000100000 RDX: ffffc9001ca23000 RSI: 000000000002582f RDI: 0000000000000004 RBP: ffffc90002f86e90 R08: ffffffff90579d37 R09: 1ffffffff20af3a6 R10: dffffc0000000000 R11: fffffbfff20af3a7 R12: fffffffffffffffa R13: 1fffffffffffffff R14: 0000000000000000 R15: 1fffffffffffffff FS: 0000000000000000(0000) GS:ffff888124f4b000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007efc3095da08 CR3: 00000000337f0000 CR4: 0000000000350ef0 Call Trace: usb_probe_interface+0x653/0xc60 drivers/usb/core/driver.c:396 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x254/0xae0 drivers/base/dd.c:706 __driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868 driver_probe_device+0x4f/0x240 drivers/base/dd.c:898 __device_attach_driver+0x270/0x410 drivers/base/dd.c:1026 bus_for_each_drv+0x258/0x2f0 drivers/base/bus.c:500 __device_attach+0x2c4/0x450 drivers/base/dd.c:1098 device_initial_probe+0xa1/0xd0 drivers/base/dd.c:1153 bus_probe_device+0x12a/0x220 drivers/base/bus.c:620 device_add+0x7d7/0xb80 drivers/base/core.c:3772 usb_set_configuration+0x1ad8/0x2180 drivers/usb/core/message.c:2268 usb_generic_driver_probe+0x8d/0x150 drivers/usb/core/generic.c:250 usb_probe_device+0x1c3/0x3b0 drivers/usb/core/driver.c:291 call_driver_probe drivers/base/dd.c:-1 [inline] really_probe+0x254/0xae0 drivers/base/dd.c:706 __driver_probe_device+0x1e8/0x360 drivers/base/dd.c:868 driver_probe_device+0x4f/0x240 drivers/base/dd.c:898 __device_attach_driver+0x270/0x410 drivers/base/dd.c:1026 bus_for_each_drv+0x258/0x2f0 drivers/base/bus.c:500 __device_attach+0x2c4/0x450 drivers/base/dd.c:1098 device_initial_probe+0xa1/0xd0 drivers/base/dd.c:1153 bus_probe_device+0x12a/0x220 drivers/base/bus.c:620 device_add+0x7d7/0xb80 drivers/base/core.c:3772 usb_new_device+0x99d/0x1620 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+0x28e8/0x4d30 drivers/usb/core/hub.c:5953 process_one_work kernel/workqueue.c:3322 [inline] process_scheduled_works+0xa8e/0x14e0 kernel/workqueue.c:3405 worker_thread+0xa47/0xfb0 kernel/workqueue.c:3486 kthread+0x388/0x470 kernel/kthread.c:436 ret_from_fork+0x514/0xb70 arch/x86/kernel/process.c:158 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:245 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+0x283/0x1690 drivers/usb/misc/emi26.c:232 Code: ff 89 de e8 bf 9d 98 00 85 db 0f 84 d9 01 00 00 e8 12 9a 98 00 48 bb 00 00 00 00 00 fc ff df 49 8d 7e 04 48 89 f8 48 c1 e8 03 <0f> b6 04 18 84 c0 75 47 49 8d 7e 05 48 89 f8 48 c1 e8 03 0f b6 04 RSP: 0018:ffffc90002f86d60 EFLAGS: 00010257 RAX: 0000000000000000 RBX: dffffc0000000000 RCX: 0000000000100000 RDX: ffffc9001ca23000 RSI: 000000000002582f RDI: 0000000000000004 RBP: ffffc90002f86e90 R08: ffffffff90579d37 R09: 1ffffffff20af3a6 R10: dffffc0000000000 R11: fffffbfff20af3a7 R12: fffffffffffffffa R13: 1fffffffffffffff R14: 0000000000000000 R15: 1fffffffffffffff FS: 0000000000000000(0000) GS:ffff888124f4b000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 0000200000f93000 CR3: 00000000758f5000 CR4: 0000000000350ef0 ---------------- Code disassembly (best guess): 0: ff 89 de e8 bf 9d decl -0x62401722(%rcx) 6: 98 cwtl 7: 00 85 db 0f 84 d9 add %al,-0x267bf025(%rbp) d: 01 00 add %eax,(%rax) f: 00 e8 add %ch,%al 11: 12 9a 98 00 48 bb adc -0x44b7ff68(%rdx),%bl 17: 00 00 add %al,(%rax) 19: 00 00 add %al,(%rax) 1b: 00 fc add %bh,%ah 1d: ff lcall (bad) 1e: df 49 8d fisttps -0x73(%rcx) 21: 7e 04 jle 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 7e 05 lea 0x5(%r14),%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