syzbot


KASAN: slab-out-of-bounds Write in tun_free_netdev (2)

Status: upstream: reported syz repro on 2021/04/08 03:19
Reported-by: syzbot+aa7f2494218a350296b6@syzkaller.appspotmail.com
First crash: 607d, last: 84d
similar bugs (2):
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-54 KASAN: slab-out-of-bounds Write in tun_free_netdev 2 852d 867d 0/2 auto-closed as invalid on 2020/12/04 03:05
android-54 KASAN: use-after-free Write in tun_free_netdev C 43 11d 886d 0/2 upstream: reported C repro on 2020/07/03 02:06

Sample crash report:
==================================================================
BUG: KASAN: slab-out-of-bounds in __hlist_del include/linux/list.h:764 [inline]
BUG: KASAN: slab-out-of-bounds in detach_timer kernel/time/timer.c:824 [inline]
BUG: KASAN: slab-out-of-bounds in detach_if_pending kernel/time/timer.c:841 [inline]
BUG: KASAN: slab-out-of-bounds in try_to_del_timer_sync+0x2b1/0x460 kernel/time/timer.c:1238
Write of size 8 at addr ffff8881e549f1c8 by task syz-executor.3/415

CPU: 0 PID: 415 Comm: syz-executor.3 Not tainted 5.4.109-syzkaller-00001-g46c5fdececa6 #0
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+0x1d8/0x24e lib/dump_stack.c:118
 print_address_description+0x9b/0x650 mm/kasan/report.c:384
 __kasan_report+0x182/0x260 mm/kasan/report.c:516
 kasan_report+0x30/0x60 mm/kasan/common.c:641
 __hlist_del include/linux/list.h:764 [inline]
 detach_timer kernel/time/timer.c:824 [inline]
 detach_if_pending kernel/time/timer.c:841 [inline]
 try_to_del_timer_sync+0x2b1/0x460 kernel/time/timer.c:1238
 del_timer_sync+0x78/0xe0 kernel/time/timer.c:1377
 tun_flow_uninit drivers/net/tun.c:1374 [inline]
 tun_free_netdev+0x99/0x3b0 drivers/net/tun.c:2315
 netdev_run_todo+0xb31/0xda0 net/core/dev.c:9408
 tun_detach drivers/net/tun.c:743 [inline]
 tun_chr_close+0xc0/0xd0 drivers/net/tun.c:3469
 __fput+0x27d/0x6c0 fs/file_table.c:281
 task_work_run+0x186/0x1b0 kernel/task_work.c:113
 tracehook_notify_resume include/linux/tracehook.h:188 [inline]
 exit_to_usermode_loop arch/x86/entry/common.c:163 [inline]
 prepare_exit_to_usermode+0x2b0/0x310 arch/x86/entry/common.c:194
 entry_SYSCALL_64_after_hwframe+0x44/0xa9
RIP: 0033:0x41926b
Code: 0f 05 48 3d 00 f0 ff ff 77 45 c3 0f 1f 40 00 48 83 ec 18 89 7c 24 0c e8 63 fc ff ff 8b 7c 24 0c 41 89 c0 b8 03 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 35 44 89 c7 89 44 24 0c e8 a1 fc ff ff 8b 44
RSP: 002b:00007ffeb219fdb0 EFLAGS: 00000293 ORIG_RAX: 0000000000000003
RAX: 0000000000000000 RBX: 0000000000000004 RCX: 000000000041926b
RDX: 0000000000570750 RSI: 0000000000000080 RDI: 0000000000000003
RBP: 0000000000000000 R08: 0000000000000000 R09: 00000000005704c0
R10: 00007ffeb219fea0 R11: 0000000000000293 R12: 0000000000063db0
R13: 00000000000003e8 R14: 000000000056bf60 R15: 0000000000063d75

Allocated by task 0:
(stack is not available)

Freed by task 0:
(stack is not available)

The buggy address belongs to the object at ffff8881e549ef80
 which belongs to the cache mm_struct of size 1040
The buggy address is located 584 bytes inside of
 1040-byte region [ffff8881e549ef80, ffff8881e549f390)
The buggy address belongs to the page:
page:ffffea0007952700 refcount:1 mapcount:0 mapping:ffff8881f5cf8280 index:0x0 compound_mapcount: 0
flags: 0x8000000000010200(slab|head)
raw: 8000000000010200 dead000000000100 dead000000000122 ffff8881f5cf8280
raw: 0000000000000000 00000000800d000d 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff8881e549f080: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff8881e549f100: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff8881e549f180: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
                                              ^
 ffff8881e549f200: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff8881e549f280: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
==================================================================

Crashes (4):
Manager Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Title
ci2-android-5-4-kasan 2021/04/08 03:18 android12-5.4 46c5fdececa6 6a81331a .config log report syz KASAN: slab-out-of-bounds Write in tun_free_netdev
ci2-android-5-4-perf-kasan 2022/09/13 06:24 android12-5.4 704c7d053806 f371ed7e .config log report info KASAN: slab-out-of-bounds Write in tun_free_netdev
ci2-android-5-4-perf-kasan 2022/08/08 08:05 android12-5.4 19a66b6f3cd8 88e3a122 .config log report info KASAN: slab-out-of-bounds Write in tun_free_netdev
ci2-android-5-4-perf-kasan 2022/08/01 00:59 android12-5.4 2bde2e268ec7 fef302b1 .config log report info KASAN: slab-out-of-bounds Write in tun_free_netdev
* Struck through repros no longer work on HEAD.