syzbot


BUG: corrupted list in usb_hcd_link_urb_to_ep (3)

Status: moderation: reported on 2024/06/06 17:13
Subsystems: usb
[Documentation on labels]
Reported-by: syzbot+c980a009f7325e5a641e@syzkaller.appspotmail.com
First crash: 15d, last: 15d
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream BUG: corrupted list in usb_hcd_link_urb_to_ep usb 1 1435d 1435d 0/27 auto-closed as invalid on 2020/11/11 04:30
upstream BUG: corrupted list in usb_hcd_link_urb_to_ep (2) usb C error error 2 207d 875d 0/27 auto-obsoleted due to no activity on 2024/03/02 17:43

Sample crash report:
usb 5-1: New USB device found, idVendor=0d8c, idProduct=000e, bcdDevice=8e.8f
usb 5-1: New USB device strings: Mfr=0, Product=24, SerialNumber=3
usb 5-1: Product: syz
usb 5-1: SerialNumber: syz
usb 5-1: config 0 descriptor??
cm109 5-1:0.8: invalid payload size 0, expected 4
input: CM109 USB driver as /devices/platform/dummy_hcd.4/usb5/5-1/5-1:0.8/input/input6
list_add double add: new=ffff8880295fc018, prev=ffff8880295fc018, next=ffff888065a4b070.
------------[ cut here ]------------
kernel BUG at lib/list_debug.c:37!
Oops: invalid opcode: 0000 [#1] PREEMPT SMP KASAN PTI
CPU: 1 PID: 50 Comm: kworker/1:1 Not tainted 6.10.0-rc1-syzkaller-00304-g83814698cf48 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/02/2024
Workqueue: usb_hub_wq hub_event
RIP: 0010:__list_add_valid_or_report+0xa3/0xf0 lib/list_debug.c:35
Code: 39 f7 74 10 b0 01 5b 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 48 c7 c7 00 f5 1f 8c 4c 89 fe 4c 89 e2 4c 89 f1 e8 0e 52 cc 06 90 <0f> 0b 48 c7 c7 00 f3 1f 8c e8 ff 51 cc 06 90 0f 0b 48 c7 c7 a0 f3
RSP: 0018:ffffc90000ba6988 EFLAGS: 00010046
RAX: 0000000000000058 RBX: ffff888065a4b078 RCX: 20d7973de3b19b00
RDX: ffffc90011ece000 RSI: 000000000003ffff RDI: 0000000000040000
RBP: ffff888065a4b078 R08: ffffffff8176812c R09: 1ffffffff1c65014
R10: dffffc0000000000 R11: fffffbfff1c65015 R12: ffff8880295fc018
R13: dffffc0000000000 R14: ffff888065a4b070 R15: ffff8880295fc018
FS:  0000000000000000(0000) GS:ffff8880b9500000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055bfb8b59290 CR3: 0000000065ffa000 CR4: 00000000003506f0
DR0: 0000000000002800 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
Call Trace:
 <TASK>
 __list_add_valid include/linux/list.h:88 [inline]
 __list_add include/linux/list.h:150 [inline]
 list_add_tail include/linux/list.h:183 [inline]
 usb_hcd_link_urb_to_ep+0x1b7/0x310 drivers/usb/core/hcd.c:1158
 dummy_urb_enqueue+0x2dd/0x760 drivers/usb/gadget/udc/dummy_hcd.c:1286
 usb_hcd_submit_urb+0x36c/0x1e80 drivers/usb/core/hcd.c:1533
 cm109_input_open+0x1f9/0x470 drivers/input/misc/cm109.c:572
 input_open_device+0x191/0x2e0 drivers/input/input.c:654
 kbd_connect+0xe9/0x130 drivers/tty/vt/keyboard.c:1593
 input_attach_handler drivers/input/input.c:1064 [inline]
 input_register_device+0xcf3/0x1090 drivers/input/input.c:2470
 cm109_usb_probe+0x10cd/0x1600 drivers/input/misc/cm109.c:806
 usb_probe_interface+0x645/0xbb0 drivers/usb/core/driver.c:399
 really_probe+0x2b8/0xad0 drivers/base/dd.c:656
 __driver_probe_device+0x1a2/0x390 drivers/base/dd.c:798
 driver_probe_device+0x50/0x430 drivers/base/dd.c:828
 __device_attach_driver+0x2d6/0x530 drivers/base/dd.c:956
 bus_for_each_drv+0x24e/0x2e0 drivers/base/bus.c:457
 __device_attach+0x333/0x520 drivers/base/dd.c:1028
 bus_probe_device+0x189/0x260 drivers/base/bus.c:532
 device_add+0x856/0xbf0 drivers/base/core.c:3721
 usb_set_configuration+0x1976/0x1fb0 drivers/usb/core/message.c:2210
 usb_generic_driver_probe+0x88/0x140 drivers/usb/core/generic.c:254
 usb_probe_device+0x1b8/0x380 drivers/usb/core/driver.c:294
 really_probe+0x2b8/0xad0 drivers/base/dd.c:656
 __driver_probe_device+0x1a2/0x390 drivers/base/dd.c:798
 driver_probe_device+0x50/0x430 drivers/base/dd.c:828
 __device_attach_driver+0x2d6/0x530 drivers/base/dd.c:956
 bus_for_each_drv+0x24e/0x2e0 drivers/base/bus.c:457
 __device_attach+0x333/0x520 drivers/base/dd.c:1028
 bus_probe_device+0x189/0x260 drivers/base/bus.c:532
 device_add+0x856/0xbf0 drivers/base/core.c:3721
 usb_new_device+0x104a/0x19a0 drivers/usb/core/hub.c:2651
 hub_port_connect drivers/usb/core/hub.c:5521 [inline]
 hub_port_connect_change drivers/usb/core/hub.c:5661 [inline]
 port_event drivers/usb/core/hub.c:5821 [inline]
 hub_event+0x2d6a/0x5150 drivers/usb/core/hub.c:5903
 process_one_work kernel/workqueue.c:3231 [inline]
 process_scheduled_works+0xa2c/0x1830 kernel/workqueue.c:3312
 worker_thread+0x86d/0xd70 kernel/workqueue.c:3393
 kthread+0x2f0/0x390 kernel/kthread.c:389
 ret_from_fork+0x4b/0x80 arch/x86/kernel/process.c:147
 ret_from_fork_asm+0x1a/0x30 arch/x86/entry/entry_64.S:244
 </TASK>
Modules linked in:
---[ end trace 0000000000000000 ]---
RIP: 0010:__list_add_valid_or_report+0xa3/0xf0 lib/list_debug.c:35
Code: 39 f7 74 10 b0 01 5b 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 48 c7 c7 00 f5 1f 8c 4c 89 fe 4c 89 e2 4c 89 f1 e8 0e 52 cc 06 90 <0f> 0b 48 c7 c7 00 f3 1f 8c e8 ff 51 cc 06 90 0f 0b 48 c7 c7 a0 f3
RSP: 0018:ffffc90000ba6988 EFLAGS: 00010046
RAX: 0000000000000058 RBX: ffff888065a4b078 RCX: 20d7973de3b19b00
RDX: ffffc90011ece000 RSI: 000000000003ffff RDI: 0000000000040000
RBP: ffff888065a4b078 R08: ffffffff8176812c R09: 1ffffffff1c65014
R10: dffffc0000000000 R11: fffffbfff1c65015 R12: ffff8880295fc018
R13: dffffc0000000000 R14: ffff888065a4b070 R15: ffff8880295fc018
FS:  0000000000000000(0000) GS:ffff8880b9500000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 000055bfb8b59290 CR3: 0000000065ffa000 CR4: 00000000003506f0
DR0: 0000000000002800 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/06/02 17:06 upstream 83814698cf48 3113787f .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce BUG: corrupted list in usb_hcd_link_urb_to_ep
* Struck through repros no longer work on HEAD.