syzbot


KASAN: slab-out-of-bounds Read in technisat_usb2_rc_query

Status: fixed on 2019/10/15 23:40
Subsystems: usb media
[Documentation on labels]
Reported-by: syzbot+eaaaf38a95427be88f4b@syzkaller.appspotmail.com
Fix commit: 0c4df39e504b media: technisat-usb2: break out of loop at end of buffer
First crash: 1829d, last: 1690d
Discussions (16)
Title Replies (including bot) Last reply
[PATCH 3.16 00/25] 3.16.77-rc1 review 28 (28) 2019/11/13 18:31
[PATCH AUTOSEL 5.2 001/185] ALSA: hda: Flush interrupts on disabling 191 (191) 2019/10/02 19:16
[PATCH AUTOSEL 5.3 001/203] ALSA: hda: Flush interrupts on disabling 217 (217) 2019/10/02 14:35
[PATCH 4.19 00/79] 4.19.75-stable review 92 (92) 2019/09/23 01:33
[PATCH AUTOSEL 4.9 01/60] ALSA: hda: Flush interrupts on disabling 60 (60) 2019/09/22 18:59
[PATCH AUTOSEL 4.14 01/89] ALSA: hda: Flush interrupts on disabling 89 (89) 2019/09/22 18:57
[PATCH AUTOSEL 4.19 001/128] ALSA: hda: Flush interrupts on disabling 128 (128) 2019/09/22 18:54
[PATCH 5.3 00/21] 5.3.1-stable review 31 (31) 2019/09/22 08:13
[PATCH 5.2 000/124] 5.2.17-stable review 132 (132) 2019/09/21 05:05
[PATCH 4.4 00/56] 4.4.194-stable review 62 (62) 2019/09/20 21:38
[PATCH 4.9 00/74] 4.9.194-stable review 80 (80) 2019/09/20 21:28
[PATCH 4.14 00/59] 4.14.146-stable review 65 (65) 2019/09/20 21:22
[PATCH] media: technisat-usb2: break out of loop at end of buffer 2 (2) 2019/07/03 16:54
[PATCH] media: usb: technisat-usb2: fix buffer overflow 5 (5) 2019/07/03 02:26
Analyze syzbot report technisat_usb2_rc_query KASAN 3 (3) 2019/07/02 14:06
KASAN: slab-out-of-bounds Read in technisat_usb2_rc_query 0 (1) 2019/04/14 20:06
Last patch testing requests (6)
Created Duration User Patch Repo Result
2019/07/03 00:54 36m tranmanphong@gmail.com patch https://github.com/google/kasan.git usb-fuzzer OK
2019/07/03 00:53 30m tranmanphong@gmail.com https://github.com/google/kasan.git usb-fuzzer report log
2019/07/02 17:49 38m tranmanphong@gmail.com patch https://github.com/google/kasan.git usb-fuzzer OK
2019/07/01 23:20 39m tranmanphong@gmail.com patch https://github.com/google/kasan.git usb-fuzzer OK
2019/07/01 22:34 32m tranmanphong@gmail.com https://github.com/google/kasan.git usb-fuzzer report log
2019/07/01 14:49 39m tranmanphong@gmail.com patch https://github.com/google/kasan.git usb-fuzzer OK

Sample crash report:
input: Technisat SkyStar USB HD (DVB-S/S2) as /devices/platform/dummy_hcd.0/usb1/1-1/rc/rc0/input16
dvb-usb: schedule remote query interval to 100 msecs.
dvb-usb: Technisat SkyStar USB HD (DVB-S/S2) successfully initialized and connected.
==================================================================
BUG: KASAN: slab-out-of-bounds in technisat_usb2_get_ir drivers/media/usb/dvb-usb/technisat-usb2.c:664 [inline]
BUG: KASAN: slab-out-of-bounds in technisat_usb2_rc_query+0x5f5/0x650 drivers/media/usb/dvb-usb/technisat-usb2.c:679
Read of size 1 at addr ffff8881d9f53c28 by task kworker/1:1/21

CPU: 1 PID: 21 Comm: kworker/1:1 Not tainted 5.2.0-rc6+ #13
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Workqueue: events dvb_usb_read_remote_control
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0xca/0x13e lib/dump_stack.c:113
 print_address_description+0x67/0x231 mm/kasan/report.c:188
 __kasan_report.cold+0x1a/0x32 mm/kasan/report.c:317
 kasan_report+0xe/0x20 mm/kasan/common.c:614
 technisat_usb2_get_ir drivers/media/usb/dvb-usb/technisat-usb2.c:664 [inline]
 technisat_usb2_rc_query+0x5f5/0x650 drivers/media/usb/dvb-usb/technisat-usb2.c:679
 dvb_usb_read_remote_control+0xdb/0x1b0 drivers/media/usb/dvb-usb/dvb-usb-remote.c:261
 process_one_work+0x905/0x1570 kernel/workqueue.c:2269
 worker_thread+0x96/0xe20 kernel/workqueue.c:2415
 kthread+0x30b/0x410 kernel/kthread.c:255
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352

Allocated by task 21:
 save_stack+0x1b/0x80 mm/kasan/common.c:71
 set_track mm/kasan/common.c:79 [inline]
 __kasan_kmalloc mm/kasan/common.c:489 [inline]
 __kasan_kmalloc.constprop.0+0xbf/0xd0 mm/kasan/common.c:462
 dvb_usb_init drivers/media/usb/dvb-usb/dvb-usb-init.c:149 [inline]
 dvb_usb_device_init.cold+0x463/0x11b0 drivers/media/usb/dvb-usb/dvb-usb-init.c:274
 technisat_usb2_probe+0x7d/0x2c0 drivers/media/usb/dvb-usb/technisat-usb2.c:763
 usb_probe_interface+0x305/0x7a0 drivers/usb/core/driver.c:361
 really_probe+0x281/0x660 drivers/base/dd.c:509
 driver_probe_device+0x104/0x210 drivers/base/dd.c:670
 __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:777
 bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
 __device_attach+0x217/0x360 drivers/base/dd.c:843
 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
 device_add+0xae6/0x16f0 drivers/base/core.c:2111
 usb_set_configuration+0xdf6/0x1670 drivers/usb/core/message.c:2023
 generic_probe+0x9d/0xd5 drivers/usb/core/generic.c:210
 usb_probe_device+0x99/0x100 drivers/usb/core/driver.c:266
 really_probe+0x281/0x660 drivers/base/dd.c:509
 driver_probe_device+0x104/0x210 drivers/base/dd.c:670
 __device_attach_driver+0x1c2/0x220 drivers/base/dd.c:777
 bus_for_each_drv+0x15c/0x1e0 drivers/base/bus.c:454
 __device_attach+0x217/0x360 drivers/base/dd.c:843
 bus_probe_device+0x1e4/0x290 drivers/base/bus.c:514
 device_add+0xae6/0x16f0 drivers/base/core.c:2111
 usb_new_device.cold+0x8c1/0x1016 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+0x1ada/0x3590 drivers/usb/core/hub.c:5432
 process_one_work+0x905/0x1570 kernel/workqueue.c:2269
 worker_thread+0x96/0xe20 kernel/workqueue.c:2415
 kthread+0x30b/0x410 kernel/kthread.c:255
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352

Freed by task 1:
 save_stack+0x1b/0x80 mm/kasan/common.c:71
 set_track mm/kasan/common.c:79 [inline]
 __kasan_slab_free+0x130/0x180 mm/kasan/common.c:451
 slab_free_hook mm/slub.c:1421 [inline]
 slab_free_freelist_hook mm/slub.c:1448 [inline]
 slab_free mm/slub.c:2994 [inline]
 kfree+0xd7/0x280 mm/slub.c:3949
 krealloc+0x78/0xc0 mm/slab_common.c:1570
 add_sysfs_param.isra.0+0xc8/0x930 kernel/params.c:621
 kernel_add_sysfs_param kernel/params.c:782 [inline]
 param_sysfs_builtin kernel/params.c:821 [inline]
 param_sysfs_init+0x35f/0x430 kernel/params.c:942
 do_one_initcall+0xd7/0x5a4 init/main.c:915
 do_initcall_level init/main.c:983 [inline]
 do_initcalls init/main.c:991 [inline]
 do_basic_setup init/main.c:1009 [inline]
 kernel_init_freeable+0x4ae/0x59b init/main.c:1169
 kernel_init+0xd/0x1bf init/main.c:1087
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:352

The buggy address belongs to the object at ffff8881d9f53b40
 which belongs to the cache kmalloc-256 of size 256
The buggy address is located 232 bytes inside of
 256-byte region [ffff8881d9f53b40, ffff8881d9f53c40)
The buggy address belongs to the page:
page:ffffea000767d4c0 refcount:1 mapcount:0 mapping:ffff8881dac02e00 index:0x0
flags: 0x200000000000200(slab)
raw: 0200000000000200 dead000000000100 dead000000000200 ffff8881dac02e00
raw: 0000000000000000 00000000000c000c 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8881d9f53b00: fc fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00
 ffff8881d9f53b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff8881d9f53c00: 00 00 00 00 00 fc fc fc fc fc fc fc fc fc fc fc
                                  ^
 ffff8881d9f53c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff8881d9f53d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
==================================================================

Crashes (2236):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/07/09 19:45 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report syz C ci2-upstream-usb
2019/06/05 18:57 https://github.com/google/kasan.git usb-fuzzer 69bbe8c72e6f bfb4a51e .config console log report syz C ci2-upstream-usb
2019/04/14 10:41 https://github.com/google/kasan.git usb-fuzzer 9a33b36996cb 505ab413 .config console log report syz C ci2-upstream-usb
2019/05/14 16:21 https://github.com/google/kasan.git usb-fuzzer 43151d6c3fce ada3c44c .config console log report syz ci2-upstream-usb
2019/08/31 00:35 https://github.com/google/kasan.git usb-fuzzer eea39f24f4a5 9adfa876 .config console log report ci2-upstream-usb
2019/07/21 01:34 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 1656845f .config console log report ci2-upstream-usb
2019/07/14 19:49 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 2bbe2f05 .config console log report ci2-upstream-usb
2019/07/14 10:17 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 e6fb0f13 .config console log report ci2-upstream-usb
2019/07/13 21:28 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 e6fb0f13 .config console log report ci2-upstream-usb
2019/07/13 18:13 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 e6fb0f13 .config console log report ci2-upstream-usb
2019/07/13 15:06 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 e6fb0f13 .config console log report ci2-upstream-usb
2019/07/13 05:39 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 baa5258a .config console log report ci2-upstream-usb
2019/07/12 17:19 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 baa5258a .config console log report ci2-upstream-usb
2019/07/12 02:28 https://github.com/google/kasan.git usb-fuzzer 6a3599ceaa39 baa5258a .config console log report ci2-upstream-usb
2019/07/11 12:34 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 11:01 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 10:41 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 09:38 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 08:31 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 07:28 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 06:22 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 04:59 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 03:45 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 02:30 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 01:11 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/11 00:03 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/10 22:49 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/10 21:12 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 ff7bf04c .config console log report ci2-upstream-usb
2019/07/10 19:46 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 18:26 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 17:24 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 16:07 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 15:06 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 14:04 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 12:57 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 11:38 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 10:35 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 09:29 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 09:28 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 08:05 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 07:00 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 05:51 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 05:43 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 04:27 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 03:13 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 01:57 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/10 00:39 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/09 23:25 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/09 21:58 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
2019/07/09 21:57 https://github.com/google/kasan.git usb-fuzzer 7829a896a587 f62e1e85 .config console log report ci2-upstream-usb
* Struck through repros no longer work on HEAD.