syzbot


KASAN: slab-out-of-bounds Write in usb_hcd_poll_rh_status

Status: auto-closed as invalid on 2020/01/01 21:24
Subsystems: usb
[Documentation on labels]
Reported-by: syzbot+4f11661279f916ba5627@syzkaller.appspotmail.com
First crash: 1641d, last: 1633d
Discussions (1)
Title Replies (including bot) Last reply
KASAN: slab-out-of-bounds Write in usb_hcd_poll_rh_status 0 (1) 2019/08/28 15:02
Similar bugs (5)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-4.14 KASAN: slab-out-of-bounds Write in usb_hcd_poll_rh_status 7 1012d 1144d 0/1 auto-closed as invalid on 2021/09/14 14:45
linux-4.19 KASAN: slab-out-of-bounds Write in usb_hcd_poll_rh_status 2 1267d 1270d 0/1 auto-closed as invalid on 2021/01/02 08:21
linux-4.14 KASAN: slab-out-of-bounds Write in usb_hcd_poll_rh_status (2) 1 795d 795d 0/1 auto-closed as invalid on 2022/04/19 20:25
linux-4.19 KASAN: slab-out-of-bounds Write in usb_hcd_poll_rh_status (2) C error 50 358d 1045d 0/1 upstream: reported C repro on 2021/04/14 12:03
upstream KASAN: slab-out-of-bounds Write in usb_hcd_poll_rh_status (2) usb C inconclusive 116 780d 1263d 20/26 fixed on 2022/03/08 16:11

Sample crash report:
==================================================================
BUG: KASAN: slab-out-of-bounds in memcpy include/linux/string.h:359 [inline]
BUG: KASAN: slab-out-of-bounds in usb_hcd_poll_rh_status+0x423/0x6b0 drivers/usb/core/hcd.c:774
Write of size 2 at addr ffff8880a7484540 by task udevd/3908

CPU: 1 PID: 3908 Comm: udevd Not tainted 5.3.0-rc7 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
Call Trace:
 <IRQ>
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x172/0x1f0 lib/dump_stack.c:113
 print_address_description.cold+0xd4/0x306 mm/kasan/report.c:351
 __kasan_report.cold+0x1b/0x36 mm/kasan/report.c:482
 kasan_report+0x12/0x17 mm/kasan/common.c:618
 check_memory_region_inline mm/kasan/generic.c:185 [inline]
 check_memory_region+0x134/0x1a0 mm/kasan/generic.c:192
 memcpy+0x38/0x50 mm/kasan/common.c:123
 memcpy include/linux/string.h:359 [inline]
 usb_hcd_poll_rh_status+0x423/0x6b0 drivers/usb/core/hcd.c:774
 rh_timer_func+0x19/0x20 drivers/usb/core/hcd.c:800
 call_timer_fn+0x1ac/0x780 kernel/time/timer.c:1322
 expire_timers kernel/time/timer.c:1366 [inline]
 __run_timers kernel/time/timer.c:1685 [inline]
 __run_timers kernel/time/timer.c:1653 [inline]
 run_timer_softirq+0x697/0x17a0 kernel/time/timer.c:1698
 __do_softirq+0x262/0x98c kernel/softirq.c:292
 invoke_softirq kernel/softirq.c:373 [inline]
 irq_exit+0x19b/0x1e0 kernel/softirq.c:413
 exiting_irq arch/x86/include/asm/apic.h:537 [inline]
 smp_apic_timer_interrupt+0x1a3/0x610 arch/x86/kernel/apic/apic.c:1133
 apic_timer_interrupt+0xf/0x20 arch/x86/entry/entry_64.S:830
 </IRQ>
RIP: 0010:__sanitizer_cov_trace_pc+0x26/0x50 kernel/kcov.c:102
Code: 90 90 90 90 55 48 89 e5 65 48 8b 04 25 40 fe 01 00 65 8b 15 a4 88 8f 7e 81 e2 00 01 1f 00 48 8b 75 08 75 2b 8b 90 f0 12 00 00 <83> fa 02 75 20 48 8b 88 f8 12 00 00 8b 80 f4 12 00 00 48 8b 11 48
RSP: 0018:ffff888096567af0 EFLAGS: 00000246 ORIG_RAX: ffffffffffffff13
RAX: ffff8880965585c0 RBX: ffff888095c21900 RCX: ffffffff81c9ab51
RDX: 0000000000000000 RSI: ffffffff81c9ab5f RDI: 0000000000000005
RBP: ffff888096567af0 R08: ffff8880965585c0 R09: ffffed10134faca1
R10: ffffed10134faca0 R11: ffff88809a7d6507 R12: dffffc0000000000
R13: ffff888095c21918 R14: 0000000000000000 R15: ffff888095c21970
 ep_send_events_proc+0x2ef/0xd20 fs/eventpoll.c:1754
 ep_scan_ready_list+0x305/0xb20 fs/eventpoll.c:704
 ep_send_events fs/eventpoll.c:1793 [inline]
 ep_poll+0x1f9/0xe60 fs/eventpoll.c:1930
 do_epoll_wait+0x210/0x260 fs/eventpoll.c:2294
 __do_sys_epoll_wait fs/eventpoll.c:2304 [inline]
 __se_sys_epoll_wait fs/eventpoll.c:2301 [inline]
 __x64_sys_epoll_wait+0x97/0xf0 fs/eventpoll.c:2301
 do_syscall_64+0xfd/0x6a0 arch/x86/entry/common.c:296
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x7f05c2df8943
Code: 00 31 d2 48 29 c2 64 89 11 48 83 c8 ff eb ea 90 90 90 90 90 90 90 90 83 3d b5 dc 2a 00 00 75 13 49 89 ca b8 e8 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 34 c3 48 83 ec 08 e8 3b c4 00 00 48 89 04 24
RSP: 002b:00007ffeee303de8 EFLAGS: 00000246 ORIG_RAX: 00000000000000e8
RAX: ffffffffffffffda RBX: 0000000000000bb8 RCX: 00007f05c2df8943
RDX: 0000000000000008 RSI: 00007ffeee303ee0 RDI: 000000000000000a
RBP: 0000000000000001 R08: 0000000000000000 R09: 0000000000000001
R10: 0000000000000bb8 R11: 0000000000000246 R12: 0000000000000003
R13: 0000000000000000 R14: 0000000001353530 R15: 0000000001341250

Allocated by task 17885:
 save_stack+0x23/0x90 mm/kasan/common.c:69
 set_track mm/kasan/common.c:77 [inline]
 __kasan_kmalloc mm/kasan/common.c:493 [inline]
 __kasan_kmalloc.constprop.0+0xcf/0xe0 mm/kasan/common.c:466
 kasan_kmalloc+0x9/0x10 mm/kasan/common.c:507
 __do_kmalloc mm/slab.c:3655 [inline]
 __kmalloc+0x163/0x770 mm/slab.c:3664
 kmalloc include/linux/slab.h:557 [inline]
 proc_do_submiturb+0x2a0d/0x3520 drivers/usb/core/devio.c:1674
 proc_submiturb_compat drivers/usb/core/devio.c:2041 [inline]
 usbdev_do_ioctl+0x1aff/0x2d10 drivers/usb/core/devio.c:2516
 usbdev_ioctl+0x26/0x30 drivers/usb/core/devio.c:2600
 vfs_ioctl fs/ioctl.c:46 [inline]
 file_ioctl fs/ioctl.c:509 [inline]
 do_vfs_ioctl+0xdb6/0x13e0 fs/ioctl.c:696
 ksys_ioctl+0xab/0xd0 fs/ioctl.c:713
 __do_sys_ioctl fs/ioctl.c:720 [inline]
 __se_sys_ioctl fs/ioctl.c:718 [inline]
 __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:718
 do_syscall_64+0xfd/0x6a0 arch/x86/entry/common.c:296
 entry_SYSCALL_64_after_hwframe+0x49/0xbe

Freed by task 16292:
 save_stack+0x23/0x90 mm/kasan/common.c:69
 set_track mm/kasan/common.c:77 [inline]
 __kasan_slab_free+0x102/0x150 mm/kasan/common.c:455
 kasan_slab_free+0xe/0x10 mm/kasan/common.c:463
 __cache_free mm/slab.c:3425 [inline]
 kfree+0x10a/0x2c0 mm/slab.c:3756
 tomoyo_path_number_perm+0x459/0x520 security/tomoyo/file.c:736
 tomoyo_file_ioctl+0x23/0x30 security/tomoyo/tomoyo.c:335
 security_file_ioctl+0x77/0xc0 security/security.c:1369
 ksys_ioctl+0x57/0xd0 fs/ioctl.c:711
 __do_sys_ioctl fs/ioctl.c:720 [inline]
 __se_sys_ioctl fs/ioctl.c:718 [inline]
 __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:718
 do_syscall_64+0xfd/0x6a0 arch/x86/entry/common.c:296
 entry_SYSCALL_64_after_hwframe+0x49/0xbe

The buggy address belongs to the object at ffff8880a7484540
 which belongs to the cache kmalloc-32 of size 32
The buggy address is located 0 bytes inside of
 32-byte region [ffff8880a7484540, ffff8880a7484560)
The buggy address belongs to the page:
page:ffffea00029d2100 refcount:1 mapcount:0 mapping:ffff8880aa4001c0 index:0xffff8880a7484fc1
flags: 0x1fffc0000000200(slab)
raw: 01fffc0000000200 ffffea00014dbbc8 ffffea000297c0c8 ffff8880aa4001c0
raw: ffff8880a7484fc1 ffff8880a7484000 000000010000003e 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8880a7484400: fb fb fb fb fc fc fc fc 00 00 00 fc fc fc fc fc
 ffff8880a7484480: fb fb fb fb fc fc fc fc fb fb fb fb fc fc fc fc
>ffff8880a7484500: fb fb fb fb fc fc fc fc 01 fc fc fc fc fc fc fc
                                           ^
 ffff8880a7484580: fb fb fb fb fc fc fc fc 00 00 fc fc fc fc fc fc
 ffff8880a7484600: 00 00 fc fc fc fc fc fc 00 01 fc fc fc fc fc fc
==================================================================

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/09/03 21:23 upstream 089cf7f6ecb2 48448e71 .config console log report ci-upstream-kasan-gce
2019/08/31 05:27 upstream 6525771f58cb fd37b39e .config console log report ci-upstream-kasan-gce
2019/08/27 17:50 upstream a55aa89aab90 d21c5d9d .config console log report ci-upstream-kasan-gce
* Struck through repros no longer work on HEAD.