syzbot


KASAN: use-after-free Read in irq_bypass_register_consumer

Status: closed as dup on 2018/05/26 09:22
Subsystems: kvm
[Documentation on labels]
Reported-by: syzbot+9a592b2d4f3c5d4c93adef9de16ded0105530914@syzkaller.appspotmail.com
First crash: 2464d, last: 2108d
Duplicate of
Title Repro Cause bisect Fix bisect Count Last Reported
KASAN: use-after-free Write in irq_bypass_register_consumer kvm C 1632 2108d 2369d

Sample crash report:
irq bypass consumer (token         (ptrval)) registration fails: -16
irq bypass consumer (token         (ptrval)) registration fails: -16
irq bypass consumer (token         (ptrval)) registration fails: -16
irq bypass consumer (token         (ptrval)) registration fails: -16
==================================================================
BUG: KASAN: use-after-free in irq_bypass_register_consumer+0x4b1/0x530 virt/lib/irqbypass.c:198
Read of size 8 at addr ffff8801c7026178 by task syz-executor869/4500

CPU: 0 PID: 4500 Comm: syz-executor869 Not tainted 4.17.0-rc4+ #37
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+0x1b9/0x294 lib/dump_stack.c:113
 print_address_description+0x6c/0x20b mm/kasan/report.c:256
 kasan_report_error mm/kasan/report.c:354 [inline]
 kasan_report.cold.7+0x242/0x2fe mm/kasan/report.c:412
 __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:433
 irq_bypass_register_consumer+0x4b1/0x530 virt/lib/irqbypass.c:198
 kvm_irqfd_assign arch/x86/kvm/../../../virt/kvm/eventfd.c:417 [inline]
 kvm_irqfd+0x1599/0x1ec0 arch/x86/kvm/../../../virt/kvm/eventfd.c:572
 kvm_vm_ioctl+0xf84/0x1d90 arch/x86/kvm/../../../virt/kvm/kvm_main.c:2997
 vfs_ioctl fs/ioctl.c:46 [inline]
 file_ioctl fs/ioctl.c:500 [inline]
 do_vfs_ioctl+0x1cf/0x16a0 fs/ioctl.c:684
 ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
 __do_sys_ioctl fs/ioctl.c:708 [inline]
 __se_sys_ioctl fs/ioctl.c:706 [inline]
 __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:706
 do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x445879
RSP: 002b:00007fd59da6ada8 EFLAGS: 00000297 ORIG_RAX: 0000000000000010
RAX: ffffffffffffffda RBX: 00000000006dac64 RCX: 0000000000445879
RDX: 0000000020018000 RSI: 000000004020ae76 RDI: 00000000000003fc
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000297 R12: 00000000006dac60
R13: 6d766b2f7665642f R14: 00007fd59da6b9c0 R15: 0000000000000009

Allocated by task 4500:
 save_stack+0x43/0xd0 mm/kasan/kasan.c:448
 set_track mm/kasan/kasan.c:460 [inline]
 kasan_kmalloc+0xc4/0xe0 mm/kasan/kasan.c:553
 kmem_cache_alloc_trace+0x152/0x780 mm/slab.c:3620
 kmalloc include/linux/slab.h:512 [inline]
 kzalloc include/linux/slab.h:701 [inline]
 kvm_irqfd_assign arch/x86/kvm/../../../virt/kvm/eventfd.c:296 [inline]
 kvm_irqfd+0x187/0x1ec0 arch/x86/kvm/../../../virt/kvm/eventfd.c:572
 kvm_vm_ioctl+0xf84/0x1d90 arch/x86/kvm/../../../virt/kvm/kvm_main.c:2997
 vfs_ioctl fs/ioctl.c:46 [inline]
 file_ioctl fs/ioctl.c:500 [inline]
 do_vfs_ioctl+0x1cf/0x16a0 fs/ioctl.c:684
 ksys_ioctl+0xa9/0xd0 fs/ioctl.c:701
 __do_sys_ioctl fs/ioctl.c:708 [inline]
 __se_sys_ioctl fs/ioctl.c:706 [inline]
 __x64_sys_ioctl+0x73/0xb0 fs/ioctl.c:706
 do_syscall_64+0x1b1/0x800 arch/x86/entry/common.c:287
 entry_SYSCALL_64_after_hwframe+0x49/0xbe

Freed by task 25:
 save_stack+0x43/0xd0 mm/kasan/kasan.c:448
 set_track mm/kasan/kasan.c:460 [inline]
 __kasan_slab_free+0x11a/0x170 mm/kasan/kasan.c:521
 kasan_slab_free+0xe/0x10 mm/kasan/kasan.c:528
 __cache_free mm/slab.c:3498 [inline]
 kfree+0xd9/0x260 mm/slab.c:3813
 irqfd_shutdown+0x13a/0x1a0 arch/x86/kvm/../../../virt/kvm/eventfd.c:148
 process_one_work+0xc1e/0x1b50 kernel/workqueue.c:2145
 worker_thread+0x1cc/0x1440 kernel/workqueue.c:2279
 kthread+0x345/0x410 kernel/kthread.c:238
 ret_from_fork+0x3a/0x50 arch/x86/entry/entry_64.S:412

The buggy address belongs to the object at ffff8801c7026000
 which belongs to the cache kmalloc-512 of size 512
The buggy address is located 376 bytes inside of
 512-byte region [ffff8801c7026000, ffff8801c7026200)
The buggy address belongs to the page:
page:ffffea00071c0980 count:1 mapcount:0 mapping:ffff8801c7026000 index:0x0
flags: 0x2fffc0000000100(slab)
raw: 02fffc0000000100 ffff8801c7026000 0000000000000000 0000000100000006
raw: ffffea00071c3ca0 ffffea00071c51e0 ffff8801da800940 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8801c7026000: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff8801c7026080: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff8801c7026100: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
                                                                ^
 ffff8801c7026180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff8801c7026200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================

Crashes (369):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2018/05/08 03:59 upstream 75bc37fefc44 9e0846e8 .config console log report syz C ci-upstream-kasan-gce
2018/05/08 03:32 upstream 75bc37fefc44 9e0846e8 .config console log report syz C ci-upstream-kasan-gce-root
2017/08/17 02:09 upstream ac9a40905a61 2dfba870 .config console log report syz C ci-upstream-kasan-gce
2017/08/07 16:29 upstream aae4e7a8bc44 77a9ec9b .config console log report syz C ci-upstream-kasan-gce
2017/07/28 00:39 upstream 36cb531d867a b0d23a5c .config console log report syz C ci-upstream-kasan-gce
2017/09/27 08:41 upstream dc972a67cc54 c26ea367 .config console log report syz C ci-upstream-kasan-gce-386
2017/09/27 09:02 mmots da2915ba6bbf c26ea367 .config console log report syz C ci-upstream-mmots-kasan-gce
2017/08/12 01:57 linux-next 91dfed74eabc 360f0528 .config console log report syz C ci-upstream-next-kasan-gce
2017/12/13 06:51 upstream d39a01eff9af ce7f2399 .config console log report syz ci-upstream-kasan-gce
2017/11/12 03:28 upstream b39545684a90 e0a2b195 .config console log report syz ci-upstream-kasan-gce
2017/09/25 13:48 upstream e19b205be43d c26ea367 .config console log report syz ci-upstream-kasan-gce
2017/09/24 23:31 upstream a141fd55f262 c26ea367 .config console log report syz ci-upstream-kasan-gce
2018/05/19 12:50 upstream 73fcb1a370c7 849705db .config console log report syz ci-upstream-kasan-gce-386
2018/05/08 03:47 upstream 75bc37fefc44 9e0846e8 .config console log report syz ci-upstream-kasan-gce-386
2017/12/13 23:24 mmots 82bcf1def3b5 06ea774d .config console log report syz ci-upstream-mmots-kasan-gce
2017/11/12 03:16 linux-next d9e0e63d9a6f e0a2b195 .config console log report syz skylake-linux-next-kasan-qemu
2018/07/17 23:31 upstream 30b06abfb92b 6d5bd5b5 .config console log report ci-upstream-kasan-gce
2018/07/17 12:24 upstream 30b06abfb92b 13761366 .config console log report ci-upstream-kasan-gce
2018/07/14 22:22 upstream c31496dbacc2 92a49505 .config console log report ci-upstream-kasan-gce-root
2018/07/08 21:59 upstream ca04b3cca11a f25e5770 .config console log report ci-upstream-kasan-gce
2018/07/08 09:56 upstream b2d44d145d2a c9a7a4dc .config console log report ci-upstream-kasan-gce
2018/07/08 04:50 upstream b2d44d145d2a c9a7a4dc .config console log report ci-upstream-kasan-gce
2018/07/05 15:45 upstream fc36def997cf f525fd72 .config console log report ci-upstream-kasan-gce
2018/07/05 03:20 upstream fc36def997cf e1b966c6 .config console log report ci-upstream-kasan-gce
2018/07/04 10:09 upstream fc36def997cf 317fc8ea .config console log report ci-upstream-kasan-gce-root
2018/07/04 07:08 upstream 410da1e12ffe 317fc8ea .config console log report ci-upstream-kasan-gce
2018/07/02 22:16 upstream 021c91791a5e 574780b0 .config console log report ci-upstream-kasan-gce-root
2018/07/01 17:58 upstream 883c9ab9eb59 dba0b50e .config console log report ci-upstream-kasan-gce
2018/06/29 01:14 upstream 90368a37fbbe dba0b50e .config console log report ci-upstream-kasan-gce
2018/06/28 19:42 upstream f57494321cbf dba0b50e .config console log report ci-upstream-kasan-gce
2018/06/28 03:49 upstream debd52a05061 43e60f7e .config console log report ci-upstream-kasan-gce
2018/06/27 16:14 upstream 813835028e9a 43e60f7e .config console log report ci-upstream-kasan-gce
2018/06/26 14:11 upstream 6f0d349d922b 089f1181 .config console log report ci-upstream-kasan-gce
2018/06/21 12:53 upstream 1abd8a8f39cd 095ef806 .config console log report ci-upstream-kasan-gce
2018/06/21 07:11 upstream 1abd8a8f39cd 095ef806 .config console log report ci-upstream-kasan-gce
2018/06/18 10:49 upstream 9ffc59d57228 27c5f59f .config console log report ci-upstream-kasan-gce
2018/06/17 14:20 upstream ce397d215ccd 27c5f59f .config console log report ci-upstream-kasan-gce-root
2018/06/15 14:34 upstream 4c5e8fc62d6a 27c5f59f .config console log report ci-upstream-kasan-gce
2018/06/11 05:56 upstream 1aaccb5fa0ea 866118af .config console log report ci-upstream-kasan-gce-root
2018/06/09 18:06 upstream 7d3bf613e99a 866118af .config console log report ci-upstream-kasan-gce-root
2018/06/05 04:43 upstream 910470e03f34 a50d873b .config console log report ci-upstream-kasan-gce-root
2018/06/04 15:26 upstream 29dcea88779c 6cbe7c26 .config console log report ci-upstream-kasan-gce-root
2018/06/03 22:49 upstream 325e14f97e0c 2f93b54f .config console log report ci-upstream-kasan-gce-root
2018/06/02 06:43 upstream 0512e0134582 2f93b54f .config console log report ci-upstream-kasan-gce-root
2018/06/02 04:42 upstream 0512e0134582 2f93b54f .config console log report ci-upstream-kasan-gce-root
2018/06/01 15:32 upstream 0512e0134582 2f93b54f .config console log report ci-upstream-kasan-gce-root
2018/05/31 11:15 upstream 88a867653065 2f93b54f .config console log report ci-upstream-kasan-gce
2018/07/07 18:44 upstream 624434af256a ab89aea9 .config console log report ci-upstream-kasan-gce-386
2018/07/05 23:03 upstream fc36def997cf d3b2a0e2 .config console log report ci-upstream-kasan-gce-386
2018/06/22 08:41 upstream 27db64f65f1b 095ef806 .config console log report ci-upstream-kasan-gce-386
2018/06/19 05:09 upstream ba4dbdedd3ed 45c54f75 .config console log report ci-upstream-kasan-gce-386
2018/06/15 04:14 upstream b5d903c2d656 27c5f59f .config console log report ci-upstream-kasan-gce-386
2018/06/10 21:09 upstream 3ca24ce9ff76 866118af .config console log report ci-upstream-kasan-gce-386
2018/06/04 17:24 upstream 29dcea88779c 6cbe7c26 .config console log report ci-upstream-kasan-gce-386
2018/06/02 23:29 upstream 4277e6b9fd44 2f93b54f .config console log report ci-upstream-kasan-gce-386
2018/06/01 00:22 upstream dd52cb879063 2f93b54f .config console log report ci-upstream-kasan-gce-386
2018/07/19 00:32 linux-next 0b742fe187f7 49f35839 .config console log report ci-upstream-linux-next-kasan-gce-root
2018/07/18 12:48 linux-next 0b742fe187f7 809256c3 .config console log report ci-upstream-linux-next-kasan-gce-root
2018/07/15 15:34 linux-next 483d835c8189 92a49505 .config console log report ci-upstream-linux-next-kasan-gce-root
2018/07/09 17:35 linux-next d00d6d9a339d f25e5770 .config console log report ci-upstream-linux-next-kasan-gce-root
2018/07/09 03:01 linux-next 526674536360 f25e5770 .config console log report ci-upstream-linux-next-kasan-gce-root
2018/07/08 05:56 linux-next 526674536360 c9a7a4dc .config console log report ci-upstream-linux-next-kasan-gce-root
2018/07/08 02:55 linux-next 526674536360 c9a7a4dc .config console log report ci-upstream-linux-next-kasan-gce-root
2018/01/17 06:17 linux-next fdddade65d7b a46e5318 .config console log report ci-upstream-next-kasan-gce
* Struck through repros no longer work on HEAD.