syzbot


KASAN: use-after-free Read in __l2tp_session_unhash

Status: auto-closed as invalid on 2019/02/22 14:19
First crash: 2181d, last: 2086d
Similar bugs (1)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-49 KASAN: use-after-free Read in __l2tp_session_unhash 4 2096d 2202d 0/3 auto-closed as invalid on 2019/02/22 13:09

Sample crash report:
==================================================================
BUG: KASAN: use-after-free in hlist_del_init_rcu include/linux/rculist.h:157 [inline]
BUG: KASAN: use-after-free in __l2tp_session_unhash+0x4de/0x520 net/l2tp/l2tp_core.c:1700
Read of size 8 at addr ffff8800b9fb9cd8 by task syz-executor1/10650

CPU: 0 PID: 10650 Comm: syz-executor1 Not tainted 4.4.147-ga5fc665 #80
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
 0000000000000000 e6bb270c3cde2f0b ffff8800b1407cb8 ffffffff81e12a4d
 ffffea0002e7ee00 ffff8800b9fb9cd8 0000000000000000 ffff8800b9fb9cd8
 ffff8800b9fb9cd8 ffff8800b1407cf0 ffffffff81517fd6 ffff8800b9fb9cd8
Call Trace:
 [<ffffffff81e12a4d>] __dump_stack lib/dump_stack.c:15 [inline]
 [<ffffffff81e12a4d>] dump_stack+0xc1/0x124 lib/dump_stack.c:51
 [<ffffffff81517fd6>] print_address_description+0x6c/0x216 mm/kasan/report.c:252
 [<ffffffff815182f5>] kasan_report_error mm/kasan/report.c:351 [inline]
 [<ffffffff815182f5>] kasan_report.cold.7+0x175/0x2f7 mm/kasan/report.c:408
 [<ffffffff814fbde4>] __asan_report_load8_noabort+0x14/0x20 mm/kasan/report.c:429
 [<ffffffff835a566e>] hlist_del_init_rcu include/linux/rculist.h:157 [inline]
 [<ffffffff835a566e>] __l2tp_session_unhash+0x4de/0x520 net/l2tp/l2tp_core.c:1700
 [<ffffffff835add37>] pppol2tp_release+0x1f7/0x310 net/l2tp/l2tp_ppp.c:508
 [<ffffffff82f1f876>] sock_release+0x96/0x1c0 net/socket.c:587
 [<ffffffff82f1f9b6>] sock_close+0x16/0x20 net/socket.c:1038
 [<ffffffff815253c5>] __fput+0x235/0x6f0 fs/file_table.c:208
 [<ffffffff81525905>] ____fput+0x15/0x20 fs/file_table.c:244
 [<ffffffff8118e00f>] task_work_run+0x10f/0x190 kernel/task_work.c:115
 [<ffffffff8100362d>] tracehook_notify_resume include/linux/tracehook.h:191 [inline]
 [<ffffffff8100362d>] exit_to_usermode_loop+0x13d/0x160 arch/x86/entry/common.c:253
 [<ffffffff81006535>] prepare_exit_to_usermode arch/x86/entry/common.c:284 [inline]
 [<ffffffff81006535>] syscall_return_slowpath+0x1b5/0x1f0 arch/x86/entry/common.c:349
 [<ffffffff838c8df5>] int_ret_from_sys_call+0x25/0xa3

Allocated by task 10650:
 [<ffffffff81034676>] save_stack_trace+0x26/0x50 arch/x86/kernel/stacktrace.c:63
 [<ffffffff814fae93>] save_stack+0x43/0xd0 mm/kasan/kasan.c:512
 [<ffffffff814fb177>] set_track mm/kasan/kasan.c:524 [inline]
 [<ffffffff814fb177>] kasan_kmalloc+0xc7/0xe0 mm/kasan/kasan.c:616
 [<ffffffff814f7894>] __kmalloc+0x124/0x310 mm/slub.c:3613
 [<ffffffff835a6649>] kmalloc include/linux/slab.h:481 [inline]
 [<ffffffff835a6649>] kzalloc include/linux/slab.h:620 [inline]
 [<ffffffff835a6649>] l2tp_session_create+0x39/0x1030 net/l2tp/l2tp_core.c:1748
 [<ffffffff835ab350>] pppol2tp_connect+0x10f0/0x1910 net/l2tp/l2tp_ppp.c:725
 [<ffffffff82f24298>] SYSC_connect+0x1b8/0x300 net/socket.c:1558
 [<ffffffff82f26bd4>] SyS_connect+0x24/0x30 net/socket.c:1539
 [<ffffffff838c8c65>] entry_SYSCALL_64_fastpath+0x22/0x9e

Freed by task 10663:
 [<ffffffff81034676>] save_stack_trace+0x26/0x50 arch/x86/kernel/stacktrace.c:63
 [<ffffffff814fae93>] save_stack+0x43/0xd0 mm/kasan/kasan.c:512
 [<ffffffff814fb7c2>] set_track mm/kasan/kasan.c:524 [inline]
 [<ffffffff814fb7c2>] kasan_slab_free+0x72/0xc0 mm/kasan/kasan.c:589
 [<ffffffff814f8cc4>] slab_free_hook mm/slub.c:1383 [inline]
 [<ffffffff814f8cc4>] slab_free_freelist_hook mm/slub.c:1405 [inline]
 [<ffffffff814f8cc4>] slab_free mm/slub.c:2859 [inline]
 [<ffffffff814f8cc4>] kfree+0xf4/0x310 mm/slub.c:3749
 [<ffffffff835a35b0>] l2tp_session_free+0x170/0x200 net/l2tp/l2tp_core.c:1676
 [<ffffffff835a5969>] l2tp_session_dec_refcount_1 net/l2tp/l2tp_core.h:293 [inline]
 [<ffffffff835a5969>] l2tp_tunnel_closeall+0x2b9/0x350 net/l2tp/l2tp_core.c:1279
 [<ffffffff835a647b>] l2tp_udp_encap_destroy+0x8b/0xf0 net/l2tp/l2tp_core.c:1300
 [<ffffffff83498481>] udpv6_destroy_sock+0xb1/0xd0 net/ipv6/udp.c:1421
 [<ffffffff82f3516d>] sk_common_release+0x6d/0x300 net/core/sock.c:2680
 [<ffffffff83497135>] udp_lib_close+0x15/0x20 include/net/udp.h:190
 [<ffffffff832fea9f>] inet_release+0xff/0x1d0 net/ipv4/af_inet.c:435
 [<ffffffff83421730>] inet6_release+0x50/0x70 net/ipv6/af_inet6.c:424
 [<ffffffff82f1f876>] sock_release+0x96/0x1c0 net/socket.c:587
 [<ffffffff82f1f9b6>] sock_close+0x16/0x20 net/socket.c:1038
 [<ffffffff815253c5>] __fput+0x235/0x6f0 fs/file_table.c:208
 [<ffffffff81525905>] ____fput+0x15/0x20 fs/file_table.c:244
 [<ffffffff8118e00f>] task_work_run+0x10f/0x190 kernel/task_work.c:115
 [<ffffffff8100362d>] tracehook_notify_resume include/linux/tracehook.h:191 [inline]
 [<ffffffff8100362d>] exit_to_usermode_loop+0x13d/0x160 arch/x86/entry/common.c:253
 [<ffffffff81006535>] prepare_exit_to_usermode arch/x86/entry/common.c:284 [inline]
 [<ffffffff81006535>] syscall_return_slowpath+0x1b5/0x1f0 arch/x86/entry/common.c:349
 [<ffffffff838c8df5>] int_ret_from_sys_call+0x25/0xa3

The buggy address belongs to the object at ffff8800b9fb9b80
 which belongs to the cache kmalloc-512 of size 512
The buggy address is located 344 bytes inside of
 512-byte region [ffff8800b9fb9b80, ffff8800b9fb9d80)
The buggy address belongs to the page:
kasan: CONFIG_KASAN_INLINE enabled
kasan: GPF could be caused by NULL-ptr deref or user memory accessgeneral protection fault: 0000 [#1] PREEMPT SMP KASAN
Dumping ftrace buffer:
   (ftrace buffer empty)
Modules linked in:
CPU: 1 PID: 3809 Comm: syz-executor1 Not tainted 4.4.147-ga5fc665 #80
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/01/2011
task: ffff8801d9140000 task.stack: ffff8801c05e8000
RIP: 0010:[<ffffffff81e744e1>]  [<ffffffff81e744e1>] lookup_object lib/debugobjects.c:120 [inline]
RIP: 0010:[<ffffffff81e744e1>]  [<ffffffff81e744e1>] debug_object_deactivate+0x191/0x340 lib/debugobjects.c:465
RSP: 0018:ffff8801db307cf0  EFLAGS: 00010006
RAX: dffffc0000000000 RBX: 00000000009300a0 RCX: 0000000000126017
RDX: 0000000000000000 RSI: ffffffff844c77a0 RDI: 00000000009300b8
RBP: ffff8801db307da8 R08: ffffffff85341110 R09: 0000000000000001
R10: 0000000000000001 R11: ffff8801d9140000 R12: 1ffff1003b660fa0
R13: ffffffff85a24b28 R14: ffff8801c149fdf8 R15: 000000000000afd3
FS:  0000000001936940(0063) GS:ffff8801db300000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f838d28ba20 CR3: 00000001c0bfa000 CR4: 00000000001606f0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Stack:
 0000000000000092 ffffffff844c77a0 0000000041b58ab3 ffffffff8420c107
 ffffffff81e74350 ffff8801d9140000 ffffed003b22811b ffff8801d91408e0
 ffff8801db3196d8 0000000000000000 ffff8801db307d80 ffffffff8122b912
Call Trace:
 <IRQ> 
 [<ffffffff8129fe92>] debug_hrtimer_deactivate kernel/time/hrtimer.c:415 [inline]
 [<ffffffff8129fe92>] debug_deactivate kernel/time/hrtimer.c:462 [inline]
 [<ffffffff8129fe92>] __run_hrtimer kernel/time/hrtimer.c:1230 [inline]
 [<ffffffff8129fe92>] __hrtimer_run_queues+0x222/0x1000 kernel/time/hrtimer.c:1325
 [<ffffffff812a1791>] hrtimer_interrupt+0x1b1/0x430 kernel/time/hrtimer.c:1359
 [<ffffffff810af3b4>] local_apic_timer_interrupt+0x74/0xa0 arch/x86/kernel/apic/apic.c:901
 [<ffffffff838cb8dc>] smp_apic_timer_interrupt+0x7c/0xa0 arch/x86/kernel/apic/apic.c:925
 [<ffffffff838ca820>] apic_timer_interrupt+0xa0/0xb0 arch/x86/entry/entry_64.S:741
 <EOI> 
 [<ffffffff811a62a7>] finish_lock_switch kernel/sched/sched.h:1177 [inline]
 [<ffffffff811a62a7>] finish_task_switch+0x1e7/0x4e0 kernel/sched/core.c:2678
 [<ffffffff838b9484>] context_switch kernel/sched/core.c:2807 [inline]
 [<ffffffff838b9484>] __schedule+0x7d4/0x1d70 kernel/sched/core.c:3326
 [<ffffffff838bac1a>] schedule+0x7a/0x1b0 kernel/sched/core.c:3355
 [<ffffffff838c6804>] freezable_schedule include/linux/freezer.h:171 [inline]
 [<ffffffff838c6804>] do_nanosleep+0x1f4/0x4f0 kernel/time/hrtimer.c:1503
 [<ffffffff812a27a0>] hrtimer_nanosleep+0x210/0x540 kernel/time/hrtimer.c:1572
 [<ffffffff812a2b8e>] SYSC_nanosleep kernel/time/hrtimer.c:1610 [inline]
 [<ffffffff812a2b8e>] SyS_nanosleep+0xbe/0x110 kernel/time/hrtimer.c:1599
 [<ffffffff838c8c65>] entry_SYSCALL_64_fastpath+0x22/0x9e
Code: a9 01 00 00 48 8b 1b 41 bf 01 00 00 00 48 85 db 74 42 48 b8 00 00 00 00 00 fc ff df 48 8d 7b 18 41 83 c7 01 48 89 f9 48 c1 e9 03 <80> 3c 01 00 0f 85 0c 01 00 00 4c 3b 73 18 74 7d 48 89 d9 48 c1 
RIP  [<ffffffff81e744e1>] lookup_object lib/debugobjects.c:120 [inline]
RIP  [<ffffffff81e744e1>] debug_object_deactivate+0x191/0x340 lib/debugobjects.c:465
 RSP <ffff8801db307cf0>
---[ end trace ac9a886803fe8277 ]---

Crashes (4):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2018/08/10 03:44 https://android.googlesource.com/kernel/common android-4.4 a5fc66599b61 1fb62d58 .config console log report ci-android-44-kasan-gce
2018/07/30 12:20 https://android.googlesource.com/kernel/common android-4.4 9664bdeff388 1a381291 .config console log report ci-android-44-kasan-gce
2018/05/07 14:03 https://android.googlesource.com/kernel/common android-4.4 6ec0e3f3a946 a211da1a .config console log report ci-android-44-kasan-gce
2018/07/05 00:05 https://android.googlesource.com/kernel/common android-4.4 7ba55570970c e1b966c6 .config console log report ci-android-44-kasan-gce-386
* Struck through repros no longer work on HEAD.