syzbot


general protection fault in u2fzero_rng_read

Status: upstream: reported C repro on 2025/06/21 06:00
Bug presence: origin:lts-only
[Documentation on labels]
Reported-by: syzbot+3391cebaeb2992da9551@syzkaller.appspotmail.com
First crash: 4d01h, last: 4h43m
Bug presence (2)
Date Name Commit Repro Result
2025/06/25 linux-6.6.y (ToT) 6282921b6825 C [report] general protection fault in u2fzero_rng_read
2025/06/25 upstream (ToT) 7595b66ae9de C Didn't crash
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 general protection fault in u2fzero_rng_read origin:lts-only C inconclusive 181 12d 333d 0/3 upstream: reported C repro on 2024/07/26 11:32
linux-5.15 general protection fault in u2fzero_rng_read origin:lts-only C inconclusive 143 12d 334d 0/3 upstream: reported C repro on 2024/07/26 05:50

Sample crash report:
usb 1-1: config 0 interface 0 has no altsetting 0
usb 1-1: New USB device found, idVendor=20a0, idProduct=4287, bcdDevice= 0.00
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
usb 1-1: config 0 descriptor??
hid-u2fzero 0003:20A0:4287.0001: hidraw0: USB HID vff.f9 Device [HID 20a0:4287] on usb-dummy_hcd.0-1/input0
hid-u2fzero 0003:20A0:4287.0001: NitroKey U2F LED initialised
general protection fault, probably for non-canonical address 0xdffffc0000000015: 0000 [#1] PREEMPT SMP KASAN
KASAN: null-ptr-deref in range [0x00000000000000a8-0x00000000000000af]
CPU: 0 PID: 788 Comm: kworker/0:2 Not tainted 6.6.94-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 05/07/2025
Workqueue: usb_hub_wq hub_event
RIP: 0010:u2fzero_recv drivers/hid/hid-u2fzero.c:137 [inline]
RIP: 0010:u2fzero_rng_read+0x233/0x630 drivers/hid/hid-u2fzero.c:223
Code: 10 42 80 3c 38 00 74 08 48 89 df e8 27 97 fa f9 41 bf a8 00 00 00 4c 03 3b 4c 89 f8 48 c1 e8 03 48 b9 00 00 00 00 00 fc ff df <80> 3c 08 00 74 08 4c 89 ff e8 9f 97 fa f9 48 8d 44 24 60 49 89 07
RSP: 0018:ffffc90003966780 EFLAGS: 00010202
RAX: 0000000000000015 RBX: ffff888147277030 RCX: dffffc0000000000
RDX: 0000000000000000 RSI: ffffc900039668a0 RDI: ffff888030f2fb68
RBP: ffffc90003966998 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffff888147277300
R13: 1ffff9200072ccf8 R14: ffff888147277418 R15: 00000000000000a8
FS:  0000000000000000(0000) GS:ffff8880b8e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00005592f825a9b8 CR3: 0000000075438000 CR4: 00000000003506f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 rng_get_data drivers/char/hw_random/core.c:198 [inline]
 add_early_randomness+0x7a/0x1a0 drivers/char/hw_random/core.c:72
 hwrng_register+0x3db/0x4a0 drivers/char/hw_random/core.c:593
 devm_hwrng_register+0x47/0xb0 drivers/char/hw_random/core.c:665
 u2fzero_probe+0x348/0x460 drivers/hid/hid-u2fzero.c:358
 __hid_device_probe drivers/hid/hid-core.c:2635 [inline]
 hid_device_probe+0x293/0x5b0 drivers/hid/hid-core.c:2672
 call_driver_probe drivers/base/dd.c:-1 [inline]
 really_probe+0x25b/0xb40 drivers/base/dd.c:658
 __driver_probe_device+0x18c/0x330 drivers/base/dd.c:800
 driver_probe_device+0x4f/0x420 drivers/base/dd.c:830
 __device_attach_driver+0x2ca/0x520 drivers/base/dd.c:958
 bus_for_each_drv+0x24b/0x2d0 drivers/base/bus.c:459
 __device_attach+0x2b5/0x400 drivers/base/dd.c:1030
 bus_probe_device+0x180/0x260 drivers/base/bus.c:534
 device_add+0x85b/0xc20 drivers/base/core.c:3683
 hid_add_device+0x38d/0x530 drivers/hid/hid-core.c:2818
 usbhid_probe+0xe02/0x1220 drivers/hid/usbhid/hid-core.c:1432
 usb_probe_interface+0x5a4/0xb00 drivers/usb/core/driver.c:396
 call_driver_probe drivers/base/dd.c:-1 [inline]
 really_probe+0x25b/0xb40 drivers/base/dd.c:658
 __driver_probe_device+0x18c/0x330 drivers/base/dd.c:800
 driver_probe_device+0x4f/0x420 drivers/base/dd.c:830
 __device_attach_driver+0x2ca/0x520 drivers/base/dd.c:958
 bus_for_each_drv+0x24b/0x2d0 drivers/base/bus.c:459
 __device_attach+0x2b5/0x400 drivers/base/dd.c:1030
 bus_probe_device+0x180/0x260 drivers/base/bus.c:534
 device_add+0x85b/0xc20 drivers/base/core.c:3683
 usb_set_configuration+0x1a79/0x20c0 drivers/usb/core/message.c:2207
 usb_generic_driver_probe+0x8d/0x150 drivers/usb/core/generic.c:238
 usb_probe_device+0x13d/0x280 drivers/usb/core/driver.c:293
 call_driver_probe drivers/base/dd.c:-1 [inline]
 really_probe+0x25b/0xb40 drivers/base/dd.c:658
 __driver_probe_device+0x18c/0x330 drivers/base/dd.c:800
 driver_probe_device+0x4f/0x420 drivers/base/dd.c:830
 __device_attach_driver+0x2ca/0x520 drivers/base/dd.c:958
 bus_for_each_drv+0x24b/0x2d0 drivers/base/bus.c:459
 __device_attach+0x2b5/0x400 drivers/base/dd.c:1030
 bus_probe_device+0x180/0x260 drivers/base/bus.c:534
 device_add+0x85b/0xc20 drivers/base/core.c:3683
 usb_new_device+0xa31/0x1630 drivers/usb/core/hub.c:2632
 hub_port_connect drivers/usb/core/hub.c:5501 [inline]
 hub_port_connect_change drivers/usb/core/hub.c:5641 [inline]
 port_event drivers/usb/core/hub.c:5801 [inline]
 hub_event+0x2957/0x49c0 drivers/usb/core/hub.c:5883
 process_one_work kernel/workqueue.c:2634 [inline]
 process_scheduled_works+0xa45/0x15b0 kernel/workqueue.c:2711
 worker_thread+0xa55/0xfc0 kernel/workqueue.c:2792
 kthread+0x2fa/0x390 kernel/kthread.c:388
 ret_from_fork+0x48/0x80 arch/x86/kernel/process.c:152
 ret_from_fork_asm+0x11/0x20 arch/x86/entry/entry_64.S:293
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
----------------
Code disassembly (best guess):
   0:	10 42 80             	adc    %al,-0x80(%rdx)
   3:	3c 38                	cmp    $0x38,%al
   5:	00 74 08 48          	add    %dh,0x48(%rax,%rcx,1)
   9:	89 df                	mov    %ebx,%edi
   b:	e8 27 97 fa f9       	call   0xf9fa9737
  10:	41 bf a8 00 00 00    	mov    $0xa8,%r15d
  16:	4c 03 3b             	add    (%rbx),%r15
  19:	4c 89 f8             	mov    %r15,%rax
  1c:	48 c1 e8 03          	shr    $0x3,%rax
  20:	48 b9 00 00 00 00 00 	movabs $0xdffffc0000000000,%rcx
  27:	fc ff df
* 2a:	80 3c 08 00          	cmpb   $0x0,(%rax,%rcx,1) <-- trapping instruction
  2e:	74 08                	je     0x38
  30:	4c 89 ff             	mov    %r15,%rdi
  33:	e8 9f 97 fa f9       	call   0xf9fa97d7
  38:	48 8d 44 24 60       	lea    0x60(%rsp),%rax
  3d:	49 89 07             	mov    %rax,(%r15)

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/06/21 23:15 linux-6.6.y 6282921b6825 d6cdfb8a .config console log report syz / log C [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in u2fzero_rng_read
2025/06/21 05:59 linux-6.6.y 6282921b6825 d6cdfb8a .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in u2fzero_rng_read
2025/06/21 05:59 linux-6.6.y 6282921b6825 d6cdfb8a .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-6-kasan general protection fault in u2fzero_rng_read
* Struck through repros no longer work on HEAD.