syzbot


KASAN: use-after-free Write in ext4_put_super

Status: upstream: reported C repro on 2022/09/25 13:27
Subsystems: ext4
[Documentation on labels]
Reported-by: syzbot+19f06d5730fe262a3a33@syzkaller.appspotmail.com
First crash: 551d, last: 392d
Fix bisection: failed (error log, bisect log)
  
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: use-after-free Write in ext4_put_super ext4 1 1077d 1073d 0/26 auto-closed as invalid on 2021/08/14 16:30
android-54 KASAN: use-after-free Read in ext4_put_super ext4 C 16 45d 1077d 0/2 upstream: reported C repro on 2021/04/17 06:50
linux-4.14 KASAN: use-after-free Read in ext4_put_super syz error 1 504d 534d 0/1 upstream: reported syz repro on 2022/10/12 05:23

Sample crash report:
EXT4-fs (loop0): re-mounted. Opts: (null)
EXT4-fs (loop4): re-mounted. Opts: (null)
EXT4-fs (loop2): re-mounted. Opts: (null)
EXT4-fs (loop3): re-mounted. Opts: (null)
==================================================================
BUG: KASAN: use-after-free in atomic_inc include/asm-generic/atomic-instrumented.h:109 [inline]
BUG: KASAN: use-after-free in kthread_stop+0x72/0x6b0 kernel/kthread.c:583
Write of size 4 at addr ffff88809d56a160 by task syz-executor227/8134

CPU: 1 PID: 8134 Comm: syz-executor227 Not tainted 4.19.211-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 10/26/2022
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x1fc/0x2ef lib/dump_stack.c:118
 print_address_description.cold+0x54/0x219 mm/kasan/report.c:256
 kasan_report_error.cold+0x8a/0x1b9 mm/kasan/report.c:354
 kasan_report+0x8f/0xa0 mm/kasan/report.c:412
 atomic_inc include/asm-generic/atomic-instrumented.h:109 [inline]
 kthread_stop+0x72/0x6b0 kernel/kthread.c:583
 ext4_put_super+0x93c/0x1010 fs/ext4/super.c:1054
 generic_shutdown_super+0x144/0x370 fs/super.c:456
 kill_block_super+0x97/0xf0 fs/super.c:1185
 deactivate_locked_super+0x94/0x160 fs/super.c:329
 deactivate_super+0x174/0x1a0 fs/super.c:360
 cleanup_mnt+0x1a8/0x290 fs/namespace.c:1098
 task_work_run+0x148/0x1c0 kernel/task_work.c:113
 tracehook_notify_resume include/linux/tracehook.h:193 [inline]
 exit_to_usermode_loop+0x251/0x2a0 arch/x86/entry/common.c:167
 prepare_exit_to_usermode arch/x86/entry/common.c:198 [inline]
 syscall_return_slowpath arch/x86/entry/common.c:271 [inline]
 do_syscall_64+0x538/0x620 arch/x86/entry/common.c:296
 entry_SYSCALL_64_after_hwframe+0x49/0xbe
RIP: 0033:0x7fc9824fce37
Code: ff d0 48 89 c7 b8 3c 00 00 00 0f 05 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48 83 c8 ff c3 66 0f 1f 44 00 00 b8 a6 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b8 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fffabafecb8 EFLAGS: 00000206 ORIG_RAX: 00000000000000a6
RAX: 0000000000000000 RBX: 0000000000061d37 RCX: 00007fc9824fce37
RDX: 00007fffabafed7a RSI: 000000000000000a RDI: 00007fffabafed70
RBP: 00007fffabafed70 R08: 00000000ffffffff R09: 00007fffabafeb50
R10: 0000555556df5753 R11: 0000000000000206 R12: 00007fffabaffde0
R13: 0000555556df5710 R14: 00007fffabafece0 R15: 0000000000000014

Allocated by task 2:
 kmem_cache_alloc_node+0x146/0x3b0 mm/slab.c:3649
 alloc_task_struct_node kernel/fork.c:157 [inline]
 dup_task_struct kernel/fork.c:807 [inline]
 copy_process.part.0+0x1ceb/0x8260 kernel/fork.c:1753
 copy_process kernel/fork.c:1710 [inline]
 _do_fork+0x22f/0xf30 kernel/fork.c:2219
 kernel_thread+0x2f/0x40 kernel/fork.c:2278
 create_kthread kernel/kthread.c:282 [inline]
 kthreadd+0x544/0x7b0 kernel/kthread.c:625
 ret_from_fork+0x24/0x30 arch/x86/entry/entry_64.S:415

Freed by task 9:
 __cache_free mm/slab.c:3503 [inline]
 kmem_cache_free+0x7f/0x260 mm/slab.c:3765
 __put_task_struct+0x2ba/0x340 kernel/fork.c:694
 put_task_struct include/linux/sched/task.h:98 [inline]
 delayed_put_task_struct+0x1dc/0x320 kernel/exit.c:181
 __rcu_reclaim kernel/rcu/rcu.h:236 [inline]
 rcu_do_batch kernel/rcu/tree.c:2584 [inline]
 invoke_rcu_callbacks kernel/rcu/tree.c:2897 [inline]
 __rcu_process_callbacks kernel/rcu/tree.c:2864 [inline]
 rcu_process_callbacks+0x8ff/0x18b0 kernel/rcu/tree.c:2881
 __do_softirq+0x265/0x980 kernel/softirq.c:292

The buggy address belongs to the object at ffff88809d56a140
 which belongs to the cache task_struct of size 6208
The buggy address is located 32 bytes inside of
 6208-byte region [ffff88809d56a140, ffff88809d56b980)
The buggy address belongs to the page:
page:ffffea0002755a80 count:1 mapcount:0 mapping:ffff88823b8337c0 index:0x0 compound_mapcount: 0
flags: 0xfff00000008100(slab|head)
raw: 00fff00000008100 ffffea0002740a08 ffffea0002753d08 ffff88823b8337c0
raw: 0000000000000000 ffff88809d56a140 0000000100000001 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff88809d56a000: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
 ffff88809d56a080: fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc fc
>ffff88809d56a100: fc fc fc fc fc fc fc fc fb fb fb fb fb fb fb fb
                                                       ^
 ffff88809d56a180: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
 ffff88809d56a200: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
==================================================================

Crashes (17):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2022/12/23 03:50 linux-4.19.y 3f8a27f9e27b 9da18ae8 .config console log report syz C [disk image] [vmlinux] [mounted in repro] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2022/10/10 16:28 linux-4.19.y 3f8a27f9e27b 5bcf0c31 .config console log report syz C [disk image] [vmlinux] [mounted in repro] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2022/09/25 13:26 linux-4.19.y 3f8a27f9e27b 0042f2b4 .config console log report syz ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/03/02 23:32 linux-4.19.y 3f8a27f9e27b f8902b57 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/02/18 06:56 linux-4.19.y 3f8a27f9e27b d02e9a70 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/02/17 07:57 linux-4.19.y 3f8a27f9e27b 851bc19a .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/02/13 22:52 linux-4.19.y 3f8a27f9e27b 957959cb .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/02/12 04:36 linux-4.19.y 3f8a27f9e27b 93e26d60 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/02/07 23:54 linux-4.19.y 3f8a27f9e27b 15c3d445 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/02/07 00:50 linux-4.19.y 3f8a27f9e27b 0a9c11b6 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/02/02 11:46 linux-4.19.y 3f8a27f9e27b 9a6f477c .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/01/21 09:09 linux-4.19.y 3f8a27f9e27b cc0f9968 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/01/18 21:37 linux-4.19.y 3f8a27f9e27b 4620c2d9 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2023/01/16 15:19 linux-4.19.y 3f8a27f9e27b a63719e7 .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2022/12/28 07:18 linux-4.19.y 3f8a27f9e27b 44712fbc .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2022/12/20 03:03 linux-4.19.y 3f8a27f9e27b c52b2efb .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
2022/12/20 02:59 linux-4.19.y 3f8a27f9e27b c52b2efb .config console log report info [disk image] [vmlinux] ci2-linux-4-19 KASAN: use-after-free Write in ext4_put_super
* Struck through repros no longer work on HEAD.