syzbot


KASAN: use-after-free Read in ext4_convert_inline_data_nolock

Status: premoderation: reported syz repro on 2024/04/30 09:18
Reported-by: syzbot+e7f89010d0badbf84806@syzkaller.appspotmail.com
First crash: 205d, last: 72d
Fix bisection: failed (error log, bisect log)
  
Similar bugs (6)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-5.15 KASAN: use-after-free Read in ext4_convert_inline_data_nolock origin:upstream C error 1 27d 550d 0/3 upstream: reported C repro on 2023/05/21 13:36
upstream KASAN: slab-use-after-free Read in ext4_convert_inline_data_nolock ext4 C error done 7 328d 605d 25/28 fixed on 2024/02/03 12:44
android-6-1 KASAN: use-after-free Read in ext4_convert_inline_data_nolock origin:upstream missing-backport C 2 8d18h 205d 0/2 upstream: reported C repro on 2024/04/30 15:29
android-5-15 KASAN: use-after-free Read in ext4_convert_inline_data_nolock origin:upstream missing-backport C error 1 20d 176d 0/2 upstream: reported C repro on 2024/05/29 02:55
linux-6.1 KASAN: use-after-free Read in ext4_convert_inline_data_nolock origin:upstream C 2 28d 586d 0/3 upstream: reported C repro on 2023/04/15 09:27
android-54 KASAN: use-after-free Read in ext4_convert_inline_data_nolock C 1 39d 205d 0/2 upstream: reported C repro on 2024/04/30 09:11
Last patch testing requests (2)
Created Duration User Patch Repo Result
2024/08/10 12:24 6m retest repro android13-5.10-lts report log
2024/05/14 11:13 2m retest repro android13-5.10-lts error
Fix bisection attempts (3)
Created Duration User Patch Repo Result
2024/10/15 03:24 0m bisect fix android13-5.10-lts error job log
2024/09/10 12:15 35m bisect fix android13-5.10-lts OK (0) job log log
2024/06/01 10:25 1h20m bisect fix android13-5.10-lts OK (0) job log log

Sample crash report:
EXT4-fs (loop0): mounted filesystem without journal. Opts: ,errors=continue
==================================================================
BUG: KASAN: use-after-free in ext4_read_inline_data fs/ext4/inline.c:209 [inline]
BUG: KASAN: use-after-free in ext4_convert_inline_data_nolock+0x319/0xd80 fs/ext4/inline.c:1224
Read of size 68 at addr ffff8881209770cf by task syz-executor.0/306

CPU: 1 PID: 306 Comm: syz-executor.0 Not tainted 5.10.210-syzkaller-00394-g70b6ab09a34b #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Call Trace:
 __dump_stack lib/dump_stack.c:77 [inline]
 dump_stack_lvl+0x1e2/0x24b lib/dump_stack.c:118
 print_address_description+0x81/0x3b0 mm/kasan/report.c:248
 __kasan_report mm/kasan/report.c:435 [inline]
 kasan_report+0x179/0x1c0 mm/kasan/report.c:452
 kasan_check_range+0x293/0x2a0 mm/kasan/generic.c:189
 memcpy+0x2d/0x70 mm/kasan/shadow.c:65
 ext4_read_inline_data fs/ext4/inline.c:209 [inline]
 ext4_convert_inline_data_nolock+0x319/0xd80 fs/ext4/inline.c:1224
 ext4_try_add_inline_entry+0x805/0xb60 fs/ext4/inline.c:1349
 ext4_add_entry+0x6c2/0x1280 fs/ext4/namei.c:2365
 ext4_mkdir+0x4d2/0xba0 fs/ext4/namei.c:2970
 vfs_mkdir+0x4cf/0x6c0 fs/namei.c:3790
 do_mkdirat+0x1a6/0x2c0 fs/namei.c:3812
 __do_sys_mkdirat fs/namei.c:3823 [inline]
 __se_sys_mkdirat fs/namei.c:3821 [inline]
 __x64_sys_mkdirat+0x7b/0x90 fs/namei.c:3821
 do_syscall_64+0x34/0x70
 entry_SYSCALL_64_after_hwframe+0x61/0xc6
RIP: 0033:0x7fe02d4949a7
Code: 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 83 c8 ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 b8 02 01 00 00 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:00007ffe440f1478 EFLAGS: 00000246 ORIG_RAX: 0000000000000102
RAX: ffffffffffffffda RBX: 00007ffe440f1500 RCX: 00007fe02d4949a7
RDX: 00000000000001ff RSI: 0000000020000580 RDI: 00000000ffffff9c
RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 0000000020000580
R13: 00007ffe440f14c0 R14: 0000000000000000 R15: 0000000000000000

The buggy address belongs to the page:
page:ffffea0004825dc0 refcount:0 mapcount:0 mapping:0000000000000000 index:0x1 pfn:0x120977
flags: 0x4000000000000000()
raw: 4000000000000000 ffffea0004825e08 ffffea0004825d88 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:
 ffff888120976f80: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff888120977000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>ffff888120977080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                                              ^
 ffff888120977100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff888120977180: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================
EXT4-fs error (device loop0): ext4_check_all_de:656: inode #12: block 5: comm syz-executor.0: bad entry in directory: rec_len is smaller than minimal - offset=0, inode=0, rec_len=0, size=124 fake=0

Crashes (1):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/04/30 09:17 android13-5.10-lts 70b6ab09a34b f10afd69 .config strace log report syz [disk image] [vmlinux] [kernel image] [mounted in repro #1] [mounted in repro #2] ci2-android-5-10 KASAN: use-after-free Read in ext4_convert_inline_data_nolock
* Struck through repros no longer work on HEAD.