UBSAN: undefined-behaviour in vhci_hub_control

6 views
Skip to first unread message

syzbot

unread,
Sep 24, 2020, 5:57:27 PM9/24/20
to syzkaller...@googlegroups.com
Hello,

syzbot found the following issue on:

HEAD commit: d09b8017 Linux 4.19.147
git tree: linux-4.19.y
console output: https://syzkaller.appspot.com/x/log.txt?x=152aee3d900000
kernel config: https://syzkaller.appspot.com/x/.config?x=47cc70be3c316a0a
dashboard link: https://syzkaller.appspot.com/bug?extid=d7e776a8af58e51a31d7
compiler: gcc (GCC) 10.1.0-syz 20200507

Unfortunately, I don't have any reproducer for this issue yet.

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+d7e776...@syzkaller.appspotmail.com

netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
================================================================================
UBSAN: Undefined behaviour in drivers/usb/usbip/vhci_hcd.c:603:42
shift exponent 768 is too large for 32-bit type 'int'
CPU: 1 PID: 3889 Comm: syz-executor.4 Not tainted 4.19.147-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
__dump_stack lib/dump_stack.c:77 [inline]
dump_stack+0x22c/0x33e lib/dump_stack.c:118
ubsan_epilogue+0xe/0x3a lib/ubsan.c:161
__ubsan_handle_shift_out_of_bounds.cold+0x1c4/0x250 lib/ubsan.c:422
vhci_hub_control.cold+0x18a/0x48c drivers/usb/usbip/vhci_hcd.c:603
rh_call_control drivers/usb/core/hcd.c:679 [inline]
rh_urb_enqueue drivers/usb/core/hcd.c:838 [inline]
usb_hcd_submit_urb+0xb7e/0x20d0 drivers/usb/core/hcd.c:1651
usb_submit_urb+0xba2/0x13b0 drivers/usb/core/urb.c:571
usb_start_wait_urb+0x108/0x2b0 drivers/usb/core/message.c:57
usb_internal_control_msg drivers/usb/core/message.c:101 [inline]
usb_control_msg+0x31c/0x4a0 drivers/usb/core/message.c:152
proc_control+0x360/0x6d0 drivers/usb/core/devio.c:1143
usbdev_do_ioctl+0x15fc/0x3580 drivers/usb/core/devio.c:2423
usbdev_ioctl+0x21/0x30 drivers/usb/core/devio.c:2580
vfs_ioctl fs/ioctl.c:46 [inline]
file_ioctl fs/ioctl.c:501 [inline]
do_vfs_ioctl+0xcdb/0x12e0 fs/ioctl.c:688
ksys_ioctl+0x9b/0xc0 fs/ioctl.c:705
__do_sys_ioctl fs/ioctl.c:712 [inline]
__se_sys_ioctl fs/ioctl.c:710 [inline]
__x64_sys_ioctl+0x6f/0xb0 fs/ioctl.c:710
do_syscall_64+0xf9/0x670 arch/x86/entry/common.c:293
entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x45e179
Code: 3d b2 fb ff c3 66 2e 0f 1f 84 00 00 00 00 00 66 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 0b b2 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007f1928c3cc78 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 000000000001ab80 RCX: 000000000045e179
RDX: 0000000020000080 RSI: 00000000c0185500 RDI: 0000000000000003
RBP: 000000000118cf80 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 000000000118cf4c
R13: 00007ffe4952ac9f R14: 00007f1928c3d9c0 R15: 000000000118cf4c
================================================================================
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: USB_PORT_FEAT_BH_PORT_RESET req not supported for USB 2.0 roothub
netlink: 20 bytes leftover after parsing attributes in process `syz-executor.2'.
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 9
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 9
vhci_hcd: USB_PORT_FEAT_BH_PORT_RESET req not supported for USB 2.0 roothub
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: USB_PORT_FEAT_BH_PORT_RESET req not supported for USB 2.0 roothub
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 0
vhci_hcd: USB_PORT_FEAT_BH_PORT_RESET req not supported for USB 2.0 roothub
vhci_hcd: USB_PORT_FEAT_BH_PORT_RESET req not supported for USB 2.0 roothub
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 255
vhci_hcd: invalid port number 255
vhci_hcd: invalid port number 0
vhci_hcd: USB_PORT_FEAT_BH_PORT_RESET req not supported for USB 2.0 roothub
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: USB_PORT_FEAT_BH_PORT_RESET req not supported for USB 2.0 roothub
vhci_hcd: invalid port number 0
vhci_hcd: default hub control req: 2316 v0000 i0000 l0
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 10
vhci_hcd: invalid port number 10
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: invalid port number 0
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: invalid port number 16
vhci_hcd: invalid port number 16
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: invalid port number 72
vhci_hcd: invalid port number 72
vhci_hcd: invalid port number 76
vhci_hcd: invalid port number 76
vhci_hcd: invalid port number 96
vhci_hcd: invalid port number 96
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: invalid port number 104
vhci_hcd: invalid port number 104
vhci_hcd: default hub control req: 0403 v0017 i0000 l0
vhci_hcd: invalid port number 108
vhci_hcd: invalid port number 108
vhci_hcd: invalid port number 116
vhci_hcd: invalid port number 116
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 122
vhci_hcd: invalid port number 122
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 0
vhci_hcd: default hub control req: 230f v0017 i0000 l0
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0
vhci_hcd: USB_PORT_FEAT_U1/2_TIMEOUT req not supported for USB 2.0 roothub
vhci_hcd: invalid port number 0
netlink: 'syz-executor.0': attribute type 11 has an invalid length.
vhci_hcd: invalid port number 0
vhci_hcd: invalid port number 0


---
This report is generated by a bot. It may contain errors.
See https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at syzk...@googlegroups.com.

syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.

syzbot

unread,
Sep 24, 2020, 6:09:21 PM9/24/20
to syzkaller...@googlegroups.com
syzbot has found a reproducer for the following issue on:

HEAD commit: d09b8017 Linux 4.19.147
git tree: linux-4.19.y
console output: https://syzkaller.appspot.com/x/log.txt?x=16c4d71d900000
syz repro: https://syzkaller.appspot.com/x/repro.syz?x=16505aad900000
C reproducer: https://syzkaller.appspot.com/x/repro.c?x=118e2617900000

IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by: syzbot+d7e776...@syzkaller.appspotmail.com

audit: type=1400 audit(1600985208.007:8): avc: denied { execmem } for pid=6493 comm="syz-executor557" scontext=system_u:system_r:kernel_t:s0 tcontext=system_u:system_r:kernel_t:s0 tclass=process permissive=1
================================================================================
UBSAN: Undefined behaviour in drivers/usb/usbip/vhci_hcd.c:603:42
shift exponent 768 is too large for 32-bit type 'int'
CPU: 1 PID: 6493 Comm: syz-executor557 Not tainted 4.19.147-syzkaller #0
RIP: 0033:0x443f39
Code: 18 89 d0 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 00 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 0f 83 fb d7 fb ff c3 66 2e 0f 1f 84 00 00 00 00
RSP: 002b:00007ffdea4f85e8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00000000004002e0 RCX: 00

Reply all
Reply to author
Forward
0 new messages