Hello,
syzbot found the following issue on:
HEAD commit: 3f5f2283d684 Merge branch 'android13-5.10' into android13-..
git tree: android13-5.10-lts
console+strace:
https://syzkaller.appspot.com/x/log.txt?x=126dcfa0580000
kernel config:
https://syzkaller.appspot.com/x/.config?x=b0867136c1e117ab
dashboard link:
https://syzkaller.appspot.com/bug?extid=3a99b74b9292ab1dacb8
compiler: Debian clang version 15.0.6, GNU ld (GNU Binutils for Debian) 2.40
syz repro:
https://syzkaller.appspot.com/x/repro.syz?x=17f8ba54580000
C reproducer:
https://syzkaller.appspot.com/x/repro.c?x=173894b7980000
Downloadable assets:
disk image:
https://storage.googleapis.com/syzbot-assets/c230530df949/disk-3f5f2283.raw.xz
vmlinux:
https://storage.googleapis.com/syzbot-assets/c932e3e9294e/vmlinux-3f5f2283.xz
kernel image:
https://storage.googleapis.com/syzbot-assets/117ea6e7ceda/bzImage-3f5f2283.xz
mounted in repro #1:
https://storage.googleapis.com/syzbot-assets/67b4b1d6e0c9/mount_0.gz
fsck result: failed (log:
https://syzkaller.appspot.com/x/fsck.log?x=146dcfa0580000)
mounted in repro #2:
https://storage.googleapis.com/syzbot-assets/d993b6032e0e/mount_1.gz
fsck result: OK (log:
https://syzkaller.appspot.com/x/fsck.log?x=121d9878580000)
IMPORTANT: if you fix the issue, please add the following tag to the commit:
Reported-by:
syzbot+3a99b7...@syzkaller.appspotmail.com
==================================================================
BUG: KASAN: use-after-free in __ext4_iget+0x3a0/0x41f0 fs/ext4/inode.c:4766
Read of size 8 at addr ffff888122438b98 by task syz-executor274/564
CPU: 1 PID: 564 Comm: syz-executor274 Not tainted 5.10.234-syzkaller-00023-g3f5f2283d684 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 02/12/2025
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
__asan_report_load8_noabort+0x14/0x20 mm/kasan/report_generic.c:309
__ext4_iget+0x3a0/0x41f0 fs/ext4/inode.c:4766
ext4_quota_enable fs/ext4/super.c:6423 [inline]
ext4_enable_quotas+0x56f/0x9f0 fs/ext4/super.c:6459
ext4_fill_super+0x86dc/0x9150 fs/ext4/super.c:5060
mount_bdev+0x262/0x370 fs/super.c:1442
ext4_mount+0x34/0x40 fs/ext4/super.c:6638
legacy_get_tree+0xf1/0x190 fs/fs_context.c:593
vfs_get_tree+0x88/0x290 fs/super.c:1572
do_new_mount+0x2ba/0xb30 fs/namespace.c:2917
path_mount+0x56f/0xcb0 fs/namespace.c:3247
do_mount fs/namespace.c:3260 [inline]
__do_sys_mount fs/namespace.c:3468 [inline]
__se_sys_mount+0x2c4/0x3b0 fs/namespace.c:3445
__x64_sys_mount+0xbf/0xd0 fs/namespace.c:3445
do_syscall_64+0x34/0x70
entry_SYSCALL_64_after_hwframe+0x61/0xcb
RIP: 0033:0x7faabcab17ea
Code: d8 64 89 02 48 c7 c0 ff ff ff ff eb a6 e8 5e 04 00 00 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 49 89 ca b8 a5 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:00007fff21021b48 EFLAGS: 00000202 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 00007fff21021ba0 RCX: 00007faabcab17ea
RDX: 0000400000000180 RSI: 0000400000000000 RDI: 00007fff21021ba0
RBP: 0000400000000000 R08: 00007fff21021be0 R09: 00000000000004fb
R10: 000000000021081e R11: 0000000000000202 R12: 0000400000000180
R13: 00007fff21021be0 R14: 0000000000000501 R15: 00004000000001c0
Allocated by task 322:
kasan_save_stack mm/kasan/common.c:38 [inline]
kasan_set_track mm/kasan/common.c:45 [inline]
set_alloc_info mm/kasan/common.c:430 [inline]
__kasan_slab_alloc+0xb1/0xe0 mm/kasan/common.c:463
kasan_slab_alloc include/linux/kasan.h:244 [inline]
slab_post_alloc_hook+0x61/0x2f0 mm/slab.h:583
slab_alloc_node mm/slub.c:2947 [inline]
slab_alloc mm/slub.c:2955 [inline]
kmem_cache_alloc+0x168/0x2e0 mm/slub.c:2960
f2fs_kmem_cache_alloc fs/f2fs/f2fs.h:2779 [inline]
f2fs_alloc_inode+0x26/0x420 fs/f2fs/super.c:1373
alloc_inode fs/inode.c:233 [inline]
iget_locked+0x14f/0x870 fs/inode.c:1275
f2fs_iget+0x55/0x50a0 fs/f2fs/inode.c:498
f2fs_fill_super+0x63b6/0x7d90 fs/f2fs/super.c:4301
mount_bdev+0x262/0x370 fs/super.c:1442
f2fs_mount+0x34/0x40 fs/f2fs/super.c:4548
legacy_get_tree+0xf1/0x190 fs/fs_context.c:593
vfs_get_tree+0x88/0x290 fs/super.c:1572
do_new_mount+0x2ba/0xb30 fs/namespace.c:2917
path_mount+0x56f/0xcb0 fs/namespace.c:3247
do_mount fs/namespace.c:3260 [inline]
__do_sys_mount fs/namespace.c:3468 [inline]
__se_sys_mount+0x2c4/0x3b0 fs/namespace.c:3445
__x64_sys_mount+0xbf/0xd0 fs/namespace.c:3445
do_syscall_64+0x34/0x70
entry_SYSCALL_64_after_hwframe+0x61/0xcb
Last potentially related work creation:
kasan_save_stack+0x3b/0x60 mm/kasan/common.c:38
__kasan_record_aux_stack+0xd3/0x100 mm/kasan/generic.c:348
kasan_record_aux_stack_noalloc+0xb/0x10 mm/kasan/generic.c:358
__call_rcu kernel/rcu/tree.c:2976 [inline]
call_rcu+0x135/0x11f0 kernel/rcu/tree.c:3050
destroy_inode fs/inode.c:288 [inline]
evict+0x8e8/0x9c0 fs/inode.c:629
iput_final fs/inode.c:1736 [inline]
iput+0x632/0x7e0 fs/inode.c:1762
f2fs_fill_super+0x66c7/0x7d90 fs/f2fs/super.c:4484
mount_bdev+0x262/0x370 fs/super.c:1442
f2fs_mount+0x34/0x40 fs/f2fs/super.c:4548
legacy_get_tree+0xf1/0x190 fs/fs_context.c:593
vfs_get_tree+0x88/0x290 fs/super.c:1572
do_new_mount+0x2ba/0xb30 fs/namespace.c:2917
path_mount+0x56f/0xcb0 fs/namespace.c:3247
do_mount fs/namespace.c:3260 [inline]
__do_sys_mount fs/namespace.c:3468 [inline]
__se_sys_mount+0x2c4/0x3b0 fs/namespace.c:3445
__x64_sys_mount+0xbf/0xd0 fs/namespace.c:3445
do_syscall_64+0x34/0x70
entry_SYSCALL_64_after_hwframe+0x61/0xcb
The buggy address belongs to the object at ffff888122438670
which belongs to the cache f2fs_inode_cache of size 1520
The buggy address is located 1320 bytes inside of
1520-byte region [ffff888122438670, ffff888122438c60)
The buggy address belongs to the page:
page:ffffea0004890e00 refcount:1 mapcount:0 mapping:0000000000000000 index:0xffff88812243ed70 pfn:0x122438
head:ffffea0004890e00 order:3 compound_mapcount:0 compound_pincount:0
flags: 0x4000000000010200(slab|head)
raw: 4000000000010200 0000000000000000 0000000100000001 ffff8881029afc80
raw: ffff88812243ed70 000000008013000f 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as allocated
page last allocated via order 3, migratetype Reclaimable, gfp_mask 0xd2050(__GFP_IO|__GFP_NOWARN|__GFP_NORETRY|__GFP_COMP|__GFP_NOMEMALLOC|__GFP_RECLAIMABLE), pid 295, ts 21183581206, free_ts 0
set_page_owner include/linux/page_owner.h:35 [inline]
post_alloc_hook mm/page_alloc.c:2456 [inline]
prep_new_page+0x166/0x180 mm/page_alloc.c:2462
get_page_from_freelist+0x2d8c/0x2f30 mm/page_alloc.c:4254
__alloc_pages_nodemask+0x435/0xaf0 mm/page_alloc.c:5348
allocate_slab mm/slub.c:1808 [inline]
new_slab+0x80/0x400 mm/slub.c:1869
new_slab_objects mm/slub.c:2627 [inline]
___slab_alloc+0x302/0x4b0 mm/slub.c:2791
__slab_alloc+0x63/0xa0 mm/slub.c:2831
slab_alloc_node mm/slub.c:2913 [inline]
slab_alloc mm/slub.c:2955 [inline]
kmem_cache_alloc+0x1b9/0x2e0 mm/slub.c:2960
f2fs_kmem_cache_alloc fs/f2fs/f2fs.h:2779 [inline]
f2fs_alloc_inode+0x26/0x420 fs/f2fs/super.c:1373
alloc_inode fs/inode.c:233 [inline]
iget_locked+0x14f/0x870 fs/inode.c:1275
f2fs_iget+0x55/0x50a0 fs/f2fs/inode.c:498
f2fs_fill_super+0x4c57/0x7d90 fs/f2fs/super.c:4193
mount_bdev+0x262/0x370 fs/super.c:1442
f2fs_mount+0x34/0x40 fs/f2fs/super.c:4548
legacy_get_tree+0xf1/0x190 fs/fs_context.c:593
vfs_get_tree+0x88/0x290 fs/super.c:1572
do_new_mount+0x2ba/0xb30 fs/namespace.c:2917
page_owner free stack trace missing
Memory state around the buggy address:
ffff888122438a80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
ffff888122438b00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
>ffff888122438b80: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb
^
ffff888122438c00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc
ffff888122438c80: fc fc fc fc fc fc fc fc fc fc fc fc 00 00 00 00
==================================================================
EXT4-fs warning (device loop0): ext4_enable_quotas:6467: Failed to enable quota tracking (type=0, err=-13, ino=3). Please run e2fsck to fix.
EXT4-fs (loop0): mount failed
---
This report is generated by a bot. It may contain errors.
See
https://goo.gl/tpsmEJ for more information about syzbot.
syzbot engineers can be reached at
syzk...@googlegroups.com.
syzbot will keep track of this issue. See:
https://goo.gl/tpsmEJ#status for how to communicate with syzbot.
If the report is already addressed, let syzbot know by replying with:
#syz fix: exact-commit-title
If you want syzbot to run the reproducer, reply with:
#syz test: git://repo/address.git branch-or-commit-hash
If you attach or paste a git patch, syzbot will apply it before testing.
If you want to overwrite report's subsystems, reply with:
#syz set subsystems: new-subsystem
(See the list of subsystem names on the web dashboard)
If the report is a duplicate of another one, reply with:
#syz dup: exact-subject-of-another-report
If you want to undo deduplication, reply with:
#syz undup