syzbot


KMSAN: kernel-usb-infoleak in usbnet_write_cmd

Status: auto-closed as invalid on 2019/10/30 07:33
Subsystems: usb
[Documentation on labels]
Reported-by: syzbot+b33fff3d3de984c82064@syzkaller.appspotmail.com
First crash: 1751d, last: 1751d
Discussions (1)
Title Replies (including bot) Last reply
KMSAN: kernel-usb-infoleak in usbnet_write_cmd 0 (1) 2019/08/01 15:28
Similar bugs (2)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KMSAN: kernel-usb-infoleak in usbnet_write_cmd (2) usb 4 1198d 1222d 0/26 auto-closed as invalid on 2021/05/05 22:17
upstream KMSAN: kernel-usb-infoleak in usbnet_write_cmd (3) usb C 256 789d 833d 20/26 fixed on 2022/03/08 16:11

Sample crash report:
ax88179_178a 3-1:0.239 (unnamed net_device) (uninitialized): Failed to write reg index 0x001f: -71
ax88179_178a 3-1:0.239 (unnamed net_device) (uninitialized): Failed to write reg index 0x001e: -71
ax88179_178a 3-1:0.239 (unnamed net_device) (uninitialized): Failed to read reg index 0x001a: -71
ax88179_178a 3-1:0.239 (unnamed net_device) (uninitialized): Failed to read reg index 0x001c: -71
==================================================================
BUG: KMSAN: kernel-usb-infoleak in usb_submit_urb+0x7ef/0x1f50 drivers/usb/core/urb.c:405
CPU: 0 PID: 12 Comm: kworker/0:1 Not tainted 5.2.0-rc4+ #7
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: usb_hub_wq hub_event
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x191/0x1f0 lib/dump_stack.c:113
 kmsan_report+0x162/0x2d0 mm/kmsan/kmsan.c:611
 kmsan_internal_check_memory+0x974/0xa80 mm/kmsan/kmsan.c:705
 kmsan_handle_urb+0x28/0x40 mm/kmsan/kmsan_hooks.c:617
 usb_submit_urb+0x7ef/0x1f50 drivers/usb/core/urb.c:405
 usb_start_wait_urb+0x143/0x410 drivers/usb/core/message.c:58
 usb_internal_control_msg drivers/usb/core/message.c:102 [inline]
 usb_control_msg+0x49f/0x7f0 drivers/usb/core/message.c:156
 __usbnet_write_cmd drivers/net/usb/usbnet.c:2020 [inline]
 usbnet_write_cmd+0x386/0x430 drivers/net/usb/usbnet.c:2058
 __ax88179_write_cmd drivers/net/usb/ax88179_178a.c:223 [inline]
 ax88179_write_cmd drivers/net/usb/ax88179_178a.c:323 [inline]
 ax88179_led_setting+0x1c76/0x2be0 drivers/net/usb/ax88179_178a.c:1184
 ax88179_bind+0xe01/0x1a10 drivers/net/usb/ax88179_178a.c:1305
 usbnet_probe+0x10d3/0x3950 drivers/net/usb/usbnet.c:1722
 usb_probe_interface+0xd19/0x1310 drivers/usb/core/driver.c:361
 really_probe+0x1344/0x1d90 drivers/base/dd.c:513
 driver_probe_device+0x1ba/0x510 drivers/base/dd.c:670
 __device_attach_driver+0x5b8/0x790 drivers/base/dd.c:777
 bus_for_each_drv+0x28e/0x3b0 drivers/base/bus.c:454
 __device_attach+0x489/0x750 drivers/base/dd.c:843
 device_initial_probe+0x4a/0x60 drivers/base/dd.c:890
 bus_probe_device+0x131/0x390 drivers/base/bus.c:514
 device_add+0x25b5/0x2df0 drivers/base/core.c:2111
 usb_set_configuration+0x309f/0x3710 drivers/usb/core/message.c:2027
 generic_probe+0xe7/0x280 drivers/usb/core/generic.c:210
 usb_probe_device+0x146/0x200 drivers/usb/core/driver.c:266
 really_probe+0x1344/0x1d90 drivers/base/dd.c:513
 driver_probe_device+0x1ba/0x510 drivers/base/dd.c:670
 __device_attach_driver+0x5b8/0x790 drivers/base/dd.c:777
 bus_for_each_drv+0x28e/0x3b0 drivers/base/bus.c:454
 __device_attach+0x489/0x750 drivers/base/dd.c:843
 device_initial_probe+0x4a/0x60 drivers/base/dd.c:890
 bus_probe_device+0x131/0x390 drivers/base/bus.c:514
 device_add+0x25b5/0x2df0 drivers/base/core.c:2111
 usb_new_device+0x23e5/0x2fb0 drivers/usb/core/hub.c:2534
 hub_port_connect drivers/usb/core/hub.c:5089 [inline]
 hub_port_connect_change drivers/usb/core/hub.c:5204 [inline]
 port_event drivers/usb/core/hub.c:5350 [inline]
 hub_event+0x5853/0x7320 drivers/usb/core/hub.c:5432
 process_one_work+0x1572/0x1f00 kernel/workqueue.c:2269
 worker_thread+0x111b/0x2460 kernel/workqueue.c:2415
 kthread+0x4b5/0x4f0 kernel/kthread.c:256
 ret_from_fork+0x35/0x40 arch/x86/entry/entry_64.S:355

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:201 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:213 [inline]
 kmsan_internal_chain_origin+0xcc/0x150 mm/kmsan/kmsan.c:414
 kmsan_memcpy_memmove_metadata+0x9f9/0xe00 mm/kmsan/kmsan.c:297
 kmsan_memcpy_metadata+0xb/0x10 mm/kmsan/kmsan.c:317
 __msan_memcpy+0x56/0x70 mm/kmsan/kmsan_instr.c:139
 kmemdup+0x107/0x140 mm/util.c:121
 __usbnet_write_cmd drivers/net/usb/usbnet.c:2009 [inline]
 usbnet_write_cmd+0x168/0x430 drivers/net/usb/usbnet.c:2058
 __ax88179_write_cmd drivers/net/usb/ax88179_178a.c:223 [inline]
 ax88179_write_cmd drivers/net/usb/ax88179_178a.c:323 [inline]
 ax88179_led_setting+0x1c76/0x2be0 drivers/net/usb/ax88179_178a.c:1184
 ax88179_bind+0xe01/0x1a10 drivers/net/usb/ax88179_178a.c:1305
 usbnet_probe+0x10d3/0x3950 drivers/net/usb/usbnet.c:1722
 usb_probe_interface+0xd19/0x1310 drivers/usb/core/driver.c:361
 really_probe+0x1344/0x1d90 drivers/base/dd.c:513
 driver_probe_device+0x1ba/0x510 drivers/base/dd.c:670
 __device_attach_driver+0x5b8/0x790 drivers/base/dd.c:777
 bus_for_each_drv+0x28e/0x3b0 drivers/base/bus.c:454
 __device_attach+0x489/0x750 drivers/base/dd.c:843
 device_initial_probe+0x4a/0x60 drivers/base/dd.c:890
 bus_probe_device+0x131/0x390 drivers/base/bus.c:514
 device_add+0x25b5/0x2df0 drivers/base/core.c:2111
 usb_set_configuration+0x309f/0x3710 drivers/usb/core/message.c:2027
 generic_probe+0xe7/0x280 drivers/usb/core/generic.c:210
 usb_probe_device+0x146/0x200 drivers/usb/core/driver.c:266
 really_probe+0x1344/0x1d90 drivers/base/dd.c:513
 driver_probe_device+0x1ba/0x510 drivers/base/dd.c:670
 __device_attach_driver+0x5b8/0x790 drivers/base/dd.c:777
 bus_for_each_drv+0x28e/0x3b0 drivers/base/bus.c:454
 __device_attach+0x489/0x750 drivers/base/dd.c:843
 device_initial_probe+0x4a/0x60 drivers/base/dd.c:890
 bus_probe_device+0x131/0x390 drivers/base/bus.c:514
 device_add+0x25b5/0x2df0 drivers/base/core.c:2111
 usb_new_device+0x23e5/0x2fb0 drivers/usb/core/hub.c:2534
 hub_port_connect drivers/usb/core/hub.c:5089 [inline]
 hub_port_connect_change drivers/usb/core/hub.c:5204 [inline]
 port_event drivers/usb/core/hub.c:5350 [inline]
 hub_event+0x5853/0x7320 drivers/usb/core/hub.c:5432
 process_one_work+0x1572/0x1f00 kernel/workqueue.c:2269
 worker_thread+0x111b/0x2460 kernel/workqueue.c:2415
 kthread+0x4b5/0x4f0 kernel/kthread.c:256
 ret_from_fork+0x35/0x40 arch/x86/entry/entry_64.S:355

Uninit was stored to memory at:
 kmsan_save_stack_with_flags mm/kmsan/kmsan.c:201 [inline]
 kmsan_save_stack mm/kmsan/kmsan.c:213 [inline]
 kmsan_internal_chain_origin+0xcc/0x150 mm/kmsan/kmsan.c:414
 __msan_chain_origin+0x6b/0xe0 mm/kmsan/kmsan_instr.c:200
 ax88179_write_cmd drivers/net/usb/ax88179_178a.c:321 [inline]
 ax88179_led_setting+0x20d3/0x2be0 drivers/net/usb/ax88179_178a.c:1184
 ax88179_bind+0xe01/0x1a10 drivers/net/usb/ax88179_178a.c:1305
 usbnet_probe+0x10d3/0x3950 drivers/net/usb/usbnet.c:1722
 usb_probe_interface+0xd19/0x1310 drivers/usb/core/driver.c:361
 really_probe+0x1344/0x1d90 drivers/base/dd.c:513
 driver_probe_device+0x1ba/0x510 drivers/base/dd.c:670
 __device_attach_driver+0x5b8/0x790 drivers/base/dd.c:777
 bus_for_each_drv+0x28e/0x3b0 drivers/base/bus.c:454
 __device_attach+0x489/0x750 drivers/base/dd.c:843
 device_initial_probe+0x4a/0x60 drivers/base/dd.c:890
 bus_probe_device+0x131/0x390 drivers/base/bus.c:514
 device_add+0x25b5/0x2df0 drivers/base/core.c:2111
 usb_set_configuration+0x309f/0x3710 drivers/usb/core/message.c:2027
 generic_probe+0xe7/0x280 drivers/usb/core/generic.c:210
 usb_probe_device+0x146/0x200 drivers/usb/core/driver.c:266
 really_probe+0x1344/0x1d90 drivers/base/dd.c:513
 driver_probe_device+0x1ba/0x510 drivers/base/dd.c:670
 __device_attach_driver+0x5b8/0x790 drivers/base/dd.c:777
 bus_for_each_drv+0x28e/0x3b0 drivers/base/bus.c:454
 __device_attach+0x489/0x750 drivers/base/dd.c:843
 device_initial_probe+0x4a/0x60 drivers/base/dd.c:890
 bus_probe_device+0x131/0x390 drivers/base/bus.c:514
 device_add+0x25b5/0x2df0 drivers/base/core.c:2111
 usb_new_device+0x23e5/0x2fb0 drivers/usb/core/hub.c:2534
 hub_port_connect drivers/usb/core/hub.c:5089 [inline]
 hub_port_connect_change drivers/usb/core/hub.c:5204 [inline]
 port_event drivers/usb/core/hub.c:5350 [inline]
 hub_event+0x5853/0x7320 drivers/usb/core/hub.c:5432
 process_one_work+0x1572/0x1f00 kernel/workqueue.c:2269
 worker_thread+0x111b/0x2460 kernel/workqueue.c:2415
 kthread+0x4b5/0x4f0 kernel/kthread.c:256
 ret_from_fork+0x35/0x40 arch/x86/entry/entry_64.S:355

Local variable description: ----buf.i129@ax88179_led_setting
Variable was created at:
 __ax88179_read_cmd drivers/net/usb/ax88179_178a.c:226 [inline]
 ax88179_read_cmd drivers/net/usb/ax88179_178a.c:299 [inline]
 ax88179_led_setting+0x18ef/0x2be0 drivers/net/usb/ax88179_178a.c:1138
 ax88179_bind+0xe01/0x1a10 drivers/net/usb/ax88179_178a.c:1305

Bytes 0-1 of 2 are uninitialized
Memory access of size 2 starts at ffff888039cbbad0
==================================================================

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/07/02 07:32 https://github.com/google/kmsan.git master 41550654dedf cccc4302 .config console log report ci-upstream-kmsan-gce
* Struck through repros no longer work on HEAD.