syzbot


KASAN: use-after-free Read in ext4_find_extent

Status: upstream: reported C repro on 2025/02/13 21:05
Reported-by: syzbot+b951e8947d1ece5cb2e9@syzkaller.appspotmail.com
First crash: 18d, last: 4d02h
Similar bugs (10)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
android-5-10 KASAN: use-after-free Read in ext4_find_extent ext4 C error inconclusive 27 7d20h 798d 0/2 upstream: reported C repro on 2022/12/26 07:59
android-6-1 KASAN: use-after-free Read in ext4_find_extent missing-backport C error done 3 127d 624d 0/2 auto-obsoleted due to no activity on 2025/02/04 04:57
linux-5.15 KASAN: use-after-free Read in ext4_find_extent origin:lts-only C inconclusive 5 9d15h 593d 0/3 upstream: reported C repro on 2023/07/19 14:49
upstream KASAN: use-after-free Read in ext4_find_extent ext4 2 1230d 1291d 0/28 auto-closed as invalid on 2022/02/17 05:19
linux-6.1 KASAN: use-after-free Read in ext4_find_extent origin:upstream missing-backport C done 1 308d 531d 0/3 upstream: reported C repro on 2023/09/19 00:11
android-5-15 KASAN: use-after-free Read in ext4_find_extent ext4 origin:lts C error 9 2d19h 798d 0/2 upstream: reported C repro on 2022/12/26 07:59
upstream KASAN: use-after-free Read in ext4_find_extent (2) ext4 C error 2 668d 793d 22/28 fixed on 2023/06/08 14:41
upstream KASAN: use-after-free Read in ext4_find_extent (4) ext4 C 12 7d17h 63d 0/28 upstream: reported C repro on 2024/12/30 20:06
upstream KASAN: use-after-free Read in ext4_find_extent (3) prio:low ext4 C error done 31 433d 615d 25/28 fixed on 2024/01/30 23:26
android-54 KASAN: slab-out-of-bounds Read in ext4_find_extent ext4 C 1 612d 798d 0/2 auto-obsoleted due to no activity on 2023/10/08 03:20
Last patch testing requests (1)
Created Duration User Patch Repo Result
2025/02/27 21:07 14m retest repro android12-5.4 report log

Sample crash report:
EXT4-fs (loop0): mounted filesystem without journal. Opts: discard,nodiscard,noquota,noinit_itable,stripe=0x0000000000000079,resgid=0x0000000000000000,sysvgroups,delalloc,delalloc,,errors=continue
ext4 filesystem being mounted at /0/file1 supports timestamps until (%ptR?) (0x7fffffff)
==================================================================
BUG: KASAN: use-after-free in ext4_ext_binsearch fs/ext4/extents.c:864 [inline]
BUG: KASAN: use-after-free in ext4_find_extent+0xba2/0xda0 fs/ext4/extents.c:980
Read of size 4 at addr ffff8881d9eebccc by task syz-executor426/364

CPU: 1 PID: 364 Comm: syz-executor426 Not tainted 5.4.289-syzkaller-00011-g39762b7a60e9 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack+0x1d8/0x241 lib/dump_stack.c:118
 print_address_description+0x8c/0x600 mm/kasan/report.c:384
 __kasan_report+0xf3/0x120 mm/kasan/report.c:516
 kasan_report+0x30/0x60 mm/kasan/common.c:653
 ext4_ext_binsearch fs/ext4/extents.c:864 [inline]
 ext4_find_extent+0xba2/0xda0 fs/ext4/extents.c:980
 ext4_ext_remove_space+0x339/0x4ba0 fs/ext4/extents.c:3021
 ext4_punch_hole+0x6ac/0xad0 fs/ext4/inode.c:4492
 ext4_fallocate+0x265/0x570 fs/ext4/extents.c:4949
 vfs_fallocate+0x551/0x6b0 fs/open.c:309
 ksys_fallocate fs/open.c:332 [inline]
 __do_sys_fallocate fs/open.c:340 [inline]
 __se_sys_fallocate fs/open.c:338 [inline]
 __x64_sys_fallocate+0xb9/0x100 fs/open.c:338
 do_syscall_64+0xca/0x1c0 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x5c/0xc1
RIP: 0033:0x7fe64e436669
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 a1 1a 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fe64e3ed168 EFLAGS: 00000246 ORIG_RAX: 000000000000011d
RAX: ffffffffffffffda RBX: 00007fe64e4bf728 RCX: 00007fe64e436669
RDX: 0000000000000000 RSI: 0000000000000003 RDI: 0000000000000005
RBP: 00007fe64e4bf720 R08: 00007fe64e3ed6c0 R09: 0000000000000000
R10: 0000000000001a00 R11: 0000000000000246 R12: 00007fe64e4bf72c
R13: 0000000000000006 R14: 00007ffd59e68ee0 R15: 00007ffd59e68fc8

The buggy address belongs to the page:
page:ffffea000767bac0 refcount:0 mapcount:0 mapping:0000000000000000 index:0x1
flags: 0x8000000000000000()
raw: 8000000000000000 ffffea000767bb08 ffffea000767ba88 0000000000000000
raw: 0000000000000001 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner info is not present (never set?)

Memory state around the buggy address:
 ffff8881d9eebb80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff8881d9eebc00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>ffff8881d9eebc80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                                              ^
 ffff8881d9eebd00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff8881d9eebd80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================
------------[ cut here ]------------
kernel BUG at fs/ext4/extents.c:3374!
invalid opcode: 0000 [#1] PREEMPT SMP KASAN
CPU: 0 PID: 364 Comm: syz-executor426 Tainted: G    B             5.4.289-syzkaller-00011-g39762b7a60e9 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 12/27/2024
RIP: 0010:ext4_split_extent_at+0xc54/0x1110 fs/ext4/extents.c:3374
Code: ff e8 80 a2 a1 ff 4c 89 ef 48 8d b4 24 00 01 00 00 e8 60 3e 00 00 e9 2c fa ff ff b0 01 84 c0 0f 84 27 f6 ff ff e8 5c a2 a1 ff <0f> 0b 89 d9 80 e1 07 fe c1 38 c1 0f 8c be f4 ff ff 48 89 df e8 53
RSP: 0018:ffff8881ee1f7900 EFLAGS: 00010293
RAX: ffffffff81c2a814 RBX: 0000000000000001 RCX: ffff8881f0cfbf00
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffff8881ee1f7a70 R08: ffffffff81c29e1f R09: ffff8881ee1f7a00
R10: ffffffffffffffff R11: dffffc0000000001 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS:  00007fe64e3ed6c0(0000) GS:ffff8881f6e00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 00007f8a5e14bed8 CR3: 00000001dfe74000 CR4: 00000000003406b0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400
Call Trace:
 ext4_force_split_extent_at fs/ext4/extents.c:308 [inline]
 ext4_ext_remove_space+0x6f3/0x4ba0 fs/ext4/extents.c:3067
 ext4_punch_hole+0x6ac/0xad0 fs/ext4/inode.c:4492
 ext4_fallocate+0x265/0x570 fs/ext4/extents.c:4949
 vfs_fallocate+0x551/0x6b0 fs/open.c:309
 ksys_fallocate fs/open.c:332 [inline]
 __do_sys_fallocate fs/open.c:340 [inline]
 __se_sys_fallocate fs/open.c:338 [inline]
 __x64_sys_fallocate+0xb9/0x100 fs/open.c:338
 do_syscall_64+0xca/0x1c0 arch/x86/entry/common.c:290
 entry_SYSCALL_64_after_hwframe+0x5c/0xc1
RIP: 0033:0x7fe64e436669
Code: 28 00 00 00 75 05 48 83 c4 28 c3 e8 a1 1a 00 00 90 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fe64e3ed168 EFLAGS: 00000246 ORIG_RAX: 000000000000011d
RAX: ffffffffffffffda RBX: 00007fe64e4bf728 RCX: 00007fe64e436669
RDX: 0000000000000000 RSI: 0000000000000003 RDI: 0000000000000005
RBP: 00007fe64e4bf720 R08: 00007fe64e3ed6c0 R09: 0000000000000000
R10: 0000000000001a00 R11: 0000000000000246 R12: 00007fe64e4bf72c
R13: 0000000000000006 R14: 00007ffd59e68ee0 R15: 00007ffd59e68fc8
Modules linked in:
---[ end trace b4a6d822cfff3d9d ]---
RIP: 0010:ext4_split_extent_at+0xc54/0x1110 fs/ext4/extents.c:3374
Code: ff e8 80 a2 a1 ff 4c 89 ef 48 8d b4 24 00 01 00 00 e8 60 3e 00 00 e9 2c fa ff ff b0 01 84 c0 0f 84 27 f6 ff ff e8 5c a2 a1 ff <0f> 0b 89 d9 80 e1 07 fe c1 38 c1 0f 8c be f4 ff ff 48 89 df e8 53
RSP: 0018:ffff8881ee1f7900 EFLAGS: 00010293
RAX: ffffffff81c2a814 RBX: 0000000000000001 RCX: ffff8881f0cfbf00
RDX: 0000000000000000 RSI: 0000000000000001 RDI: 0000000000000000
RBP: ffff8881ee1f7a70 R08: ffffffff81c29e1f R09: ffff8881ee1f7a00
R10: ffffffffffffffff R11: dffffc0000000001 R12: 0000000000000000
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
FS:  00007fe64e3ed6c0(0000) GS:ffff8881f6f00000(0000) knlGS:0000000000000000
CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
CR2: 0000559965d246a0 CR3: 00000001dfe74000 CR4: 00000000003406a0
DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2025/02/13 21:03 android12-5.4 39762b7a60e9 a98a8417 .config console log report syz / log C [disk image] [vmlinux] [kernel image] [mounted in repro (corrupt fs)] ci2-android-5-4-kasan KASAN: use-after-free Read in ext4_find_extent
* Struck through repros no longer work on HEAD.