syzbot


android-4.4 boot error: KASAN: use-after-free Read in ion_heap_deferred_free

Status: auto-closed as invalid on 2020/04/02 09:44
Reported-by: syzbot+82c6c63348a16c48b997@syzkaller.appspotmail.com
First crash: 1896d, last: 1605d

Sample crash report:
usbcore: registered new interface driver usbhid
usbhid: USB HID core driver
ion_heap_create: Heap type is disabled: 1
kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory access[    4.121948] ==================================================================
BUG: KASAN: use-after-free in __lock_acquire+0x38fd/0x4cf0 kernel/locking/lockdep.c:3092
Read of size 8 at addr ffff8800ba207c48 by task system/344

CPU: 0 PID: 344 Comm: system Not tainted 4.4.205-syzkaller #0
 0000000000000000 7a9a83a8bb14522d ffff8801d7f2fa00 ffffffff81a5ec4b
 0000000000000000 ffffea0002e88180 ffff8800ba207c48 0000000000000008
 0000000000000000 ffff8801d7f2fa38 ffffffff81475901 0000000000000000
Call Trace:
 [<ffffffff81a5ec4b>] __dump_stack lib/dump_stack.c:15 [inline]
 [<ffffffff81a5ec4b>] dump_stack+0xcb/0x130 lib/dump_stack.c:56
 [<ffffffff81475901>] print_address_description+0x6f/0x21b mm/kasan/report.c:252
 [<ffffffff81475b39>] kasan_report_error mm/kasan/report.c:351 [inline]
 [<ffffffff81475b39>] kasan_report mm/kasan/report.c:408 [inline]
 [<ffffffff81475b39>] kasan_report.cold+0x8c/0x2be mm/kasan/report.c:393
 [<ffffffff8146a964>] __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:429
 [<ffffffff811fef7d>] __lock_acquire+0x38fd/0x4cf0 kernel/locking/lockdep.c:3092
 [<ffffffff81201cbe>] lock_acquire+0x15e/0x450 kernel/locking/lockdep.c:3595
 [<ffffffff826a42e8>] __raw_spin_lock include/linux/spinlock_api_smp.h:144 [inline]
 [<ffffffff826a42e8>] _raw_spin_lock+0x38/0x50 kernel/locking/spinlock.c:151
 [<ffffffff820adbe0>] spin_lock include/linux/spinlock.h:302 [inline]
 [<ffffffff820adbe0>] ion_heap_freelist_size drivers/staging/android/ion/ion_heap.c:176 [inline]
 [<ffffffff820adbe0>] ion_heap_deferred_free+0x100/0x3c0 drivers/staging/android/ion/ion_heap.c:232
 [<ffffffff81132cc3>] kthread+0x273/0x310 kernel/kthread.c:211
 [<ffffffff826a55c5>] ret_from_fork+0x55/0x80 arch/x86/entry/entry_64.S:510

Allocated by task 1:
 [<ffffffff8102f176>] save_stack_trace+0x26/0x50 arch/x86/kernel/stacktrace.c:63
 [<ffffffff814699b2>] save_stack mm/kasan/kasan.c:512 [inline]
 [<ffffffff814699b2>] set_track mm/kasan/kasan.c:524 [inline]
 [<ffffffff814699b2>] kasan_kmalloc.part.0+0x62/0xf0 mm/kasan/kasan.c:616
 [<ffffffff81469c27>] kasan_kmalloc+0xb7/0xd0 mm/kasan/kasan.c:601
 [<ffffffff81465d43>] kmem_cache_alloc_trace+0x123/0x2d0 mm/slub.c:2642
 [<ffffffff820b10bb>] kmalloc include/linux/slab.h:476 [inline]
 [<ffffffff820b10bb>] kzalloc include/linux/slab.h:620 [inline]
 [<ffffffff820b10bb>] ion_system_heap_create+0x4b/0x2c0 drivers/staging/android/ion/ion_system_heap.c:283
 [<ffffffff820adff6>] ion_heap_create+0x156/0x1b0 drivers/staging/android/ion/ion_heap.c:328
 [<ffffffff8324d804>] ion_dummy_init+0x1e5/0x36d drivers/staging/android/ion/ion_dummy_driver.c:106
 [<ffffffff810004ab>] do_one_initcall+0x13b/0x260 init/main.c:793
 [<ffffffff831d5b01>] do_initcall_level init/main.c:858 [inline]
 [<ffffffff831d5b01>] do_initcalls init/main.c:866 [inline]
 [<ffffffff831d5b01>] do_basic_setup init/main.c:884 [inline]
 [<ffffffff831d5b01>] kernel_init_freeable+0x2fa/0x3c3 init/main.c:1029
 [<ffffffff82692f74>] kernel_init+0x12/0x15e init/main.c:957
 [<ffffffff826a55c5>] ret_from_fork+0x55/0x80 arch/x86/entry/entry_64.S:510

Freed by task 1:
 [<ffffffff8102f176>] save_stack_trace+0x26/0x50 arch/x86/kernel/stacktrace.c:63
 [<ffffffff8146a2b0>] save_stack mm/kasan/kasan.c:512 [inline]
 [<ffffffff8146a2b0>] set_track mm/kasan/kasan.c:524 [inline]
 [<ffffffff8146a2b0>] kasan_slab_free+0xb0/0x190 mm/kasan/kasan.c:589
 [<ffffffff81467794>] slab_free_hook mm/slub.c:1383 [inline]
 [<ffffffff81467794>] slab_free_freelist_hook mm/slub.c:1405 [inline]
 [<ffffffff81467794>] slab_free mm/slub.c:2859 [inline]
 [<ffffffff81467794>] kfree+0xf4/0x310 mm/slub.c:3749
 [<ffffffff820b13ca>] ion_system_heap_destroy+0x9a/0xc0 drivers/staging/android/ion/ion_system_heap.c:323
 [<ffffffff820ae0ba>] ion_heap_destroy+0x6a/0xd0 drivers/staging/android/ion/ion_heap.c:369
 [<ffffffff8324d8e0>] ion_dummy_init+0x2c1/0x36d drivers/staging/android/ion/ion_dummy_driver.c:116
 [<ffffffff810004ab>] do_one_initcall+0x13b/0x260 init/main.c:793
 [<ffffffff831d5b01>] do_initcall_level init/main.c:858 [inline]
 [<ffffffff831d5b01>] do_initcalls init/main.c:866 [inline]
 [<ffffffff831d5b01>] do_basic_setup init/main.c:884 [inline]
 [<ffffffff831d5b01>] kernel_init_freeable+0x2fa/0x3c3 init/main.c:1029
 [<ffffffff82692f74>] kernel_init+0x12/0x15e init/main.c:957
 [<ffffffff826a55c5>] ret_from_fork+0x55/0x80 arch/x86/entry/entry_64.S:510

The buggy address belongs to the object at ffff8800ba207b80
 which belongs to the cache kmalloc-512 of size 512
The buggy address is located 200 bytes inside of
 512-byte region [ffff8800ba207b80, ffff8800ba207d80)
The buggy address belongs to the page:
general protection fault: 0000 [#1] PREEMPT SMP KASAN
Modules linked in:
CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.4.205-syzkaller #0
task: ffff8801da5f0000 task.stack: ffff8801da5f8000
RIP: 0010:[<ffffffff820ae082>]  [<ffffffff820ae082>] ion_heap_destroy+0x32/0xd0 drivers/staging/android/ion/ion_heap.c:363
RSP: 0000:ffff8801da5ffda8  EFLAGS: 00010206
RAX: dffffc0000000000 RBX: 0000000000000010 RCX: 0000000000000000
RDX: 0000000000000003 RSI: ffffffff820ae06c RDI: 000000000000001a
RBP: ffff8801da5ffdb8 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000000 R12: ffffffffffffffea
R13: ffff8801d7e184b8 R14: dffffc0000000000 R15: ffffffffffffffea
FS:  0000000000000000(0000) GS:ffff8801db700000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000000000000000 CR3: 0000000002e0a000 CR4: 00000000001606b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Stack:
 dffffc0000000000 ffffffffffffffea ffff8801da5ffdf0 ffffffff8324d8e0
 ffffffff82e11080 ffff8801d7e142e0 dffffc0000000000 ffffffff8324d61f
 ffff8801da5ffeb0 ffff8801da5ffed8 ffffffff810004ab 0000000082ab2920
Call Trace:
 [<ffffffff8324d8e0>] ion_dummy_init+0x2c1/0x36d drivers/staging/android/ion/ion_dummy_driver.c:116
 [<ffffffff810004ab>] do_one_initcall+0x13b/0x260 init/main.c:793
 [<ffffffff831d5b01>] do_initcall_level init/main.c:858 [inline]
 [<ffffffff831d5b01>] do_initcalls init/main.c:866 [inline]
 [<ffffffff831d5b01>] do_basic_setup init/main.c:884 [inline]
 [<ffffffff831d5b01>] kernel_init_freeable+0x2fa/0x3c3 init/main.c:1029
 [<ffffffff82692f74>] kernel_init+0x12/0x15e init/main.c:957
 [<ffffffff826a55c5>] ret_from_fork+0x55/0x80 arch/x86/entry/entry_64.S:510
Code: 89 fc 48 83 ec 08 e8 1e d8 24 ff 4d 85 e4 74 53 e8 14 d8 24 ff 49 8d 7c 24 30 48 b8 00 00 00 00 00 fc ff df 48 89 fa 48 c1 ea 03 <0f> b6 04 02 84 c0 74 08 3c 03 0f 8e 83 00 00 00 41 8b 54 24 30 
RIP  [<ffffffff820ae082>] ion_heap_destroy+0x32/0xd0 drivers/staging/android/ion/ion_heap.c:363
 RSP <ffff8801da5ffda8>
------------[ cut here ]------------
WARNING: CPU: 1 PID: 1 at lib/list_debug.c:26 __list_add+0x120/0x1c0 lib/list_debug.c:26()
list_add corruption. next->prev should be prev (ffff8801db61e1f8), but was ffffea0002e88180. (next=ffff8801d7f20088).

Crashes (235):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2019/12/04 09:44 android-4.4 516978792f57 0ecb9746 .config console log report ci-android-44-kasan-gce
2019/12/03 17:26 android-4.4 516978792f57 ae13a849 .config console log report ci-android-44-kasan-gce
2019/12/01 22:52 android-4.4 516978792f57 f879db37 .config console log report ci-android-44-kasan-gce
2019/11/30 00:05 android-4.4 516978792f57 3a75be00 .config console log report ci-android-44-kasan-gce
2019/11/29 11:22 android-4.4 516978792f57 76357d6f .config console log report ci-android-44-kasan-gce
2019/11/27 16:16 android-4.4 40ef73d67ad9 0d63f89c .config console log report ci-android-44-kasan-gce
2019/11/25 11:22 android-4.4 a4d443b76f66 371caf77 .config console log report ci-android-44-kasan-gce
2019/11/20 02:33 android-4.4 a4d443b76f66 f4b7ed07 .config console log report ci-android-44-kasan-gce
2019/11/08 08:15 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 1e35461e .config console log report ci-android-44-kasan-gce
2019/11/07 04:22 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 d797d201 .config console log report ci-android-44-kasan-gce
2019/11/06 15:54 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 da505f84 .config console log report ci-android-44-kasan-gce
2019/11/05 12:09 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 0f3ec414 .config console log report ci-android-44-kasan-gce
2019/11/04 00:28 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 b35fad31 .config console log report ci-android-44-kasan-gce
2019/11/02 22:32 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 a41ca8fa .config console log report ci-android-44-kasan-gce
2019/10/30 20:52 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 a41ca8fa .config console log report ci-android-44-kasan-gce
2019/10/29 17:33 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 5ea87a66 .config console log report ci-android-44-kasan-gce
2019/10/29 05:17 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 5ea87a66 .config console log report ci-android-44-kasan-gce
2019/10/26 15:48 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 25bb509e .config console log report ci-android-44-kasan-gce
2019/10/22 04:05 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 c59a7cd8 .config console log report ci-android-44-kasan-gce
2019/10/20 13:58 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 8c88c9c1 .config console log report ci-android-44-kasan-gce
2019/10/17 14:00 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 8c88c9c1 .config console log report ci-android-44-kasan-gce
2019/10/15 23:46 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 d4ea592f .config console log report ci-android-44-kasan-gce
2019/10/15 11:01 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 b5268b89 .config console log report ci-android-44-kasan-gce
2019/10/14 13:53 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 05ad7292 .config console log report ci-android-44-kasan-gce
2019/10/10 22:44 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 1a3bad90 .config console log report ci-android-44-kasan-gce
2019/10/09 22:43 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 c4b9981b .config console log report ci-android-44-kasan-gce
2019/10/08 13:49 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 137e37ca .config console log report ci-android-44-kasan-gce
2019/11/18 13:15 android-4.4 a4d443b76f66 1daed50a .config console log report ci-android-44-kasan-gce-386
2019/11/16 13:20 android-4.4 a4d443b76f66 d5696d51 .config console log report ci-android-44-kasan-gce-386
2019/11/08 23:40 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 dc438b91 .config console log report ci-android-44-kasan-gce-386
2019/11/06 03:04 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 bc2c6e45 .config console log report ci-android-44-kasan-gce-386
2019/11/04 17:35 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 76630fc9 .config console log report ci-android-44-kasan-gce-386
2019/11/03 13:31 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 c9610487 .config console log report ci-android-44-kasan-gce-386
2019/10/26 05:13 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 413926c5 .config console log report ci-android-44-kasan-gce-386
2019/10/25 14:50 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 c2e837da .config console log report ci-android-44-kasan-gce-386
2019/10/24 07:54 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 d01bb02a .config console log report ci-android-44-kasan-gce-386
2019/10/23 15:35 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 b602d64b .config console log report ci-android-44-kasan-gce-386
2019/10/22 16:08 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 5681358a .config console log report ci-android-44-kasan-gce-386
2019/10/20 18:03 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 8c88c9c1 .config console log report ci-android-44-kasan-gce-386
2019/10/17 18:01 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 8c88c9c1 .config console log report ci-android-44-kasan-gce-386
2019/10/16 18:43 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 8c88c9c1 .config console log report ci-android-44-kasan-gce-386
2019/10/14 17:58 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 05ad7292 .config console log report ci-android-44-kasan-gce-386
2019/10/14 09:52 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 a6aef847 .config console log report ci-android-44-kasan-gce-386
2019/10/13 09:08 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 2f661ec4 .config console log report ci-android-44-kasan-gce-386
2019/10/08 16:28 https://android.googlesource.com/kernel/common android-4.4 a749771ac273 b1ebbfef .config console log report ci-android-44-kasan-gce-386
2019/02/16 01:32 https://android.googlesource.com/kernel/common android-4.4 aaf863165e09 f42dee6d .config console log report ci-android-44-kasan-gce-386
* Struck through repros no longer work on HEAD.