syzbot


KASAN: use-after-free Read in sysv_new_inode

Status: upstream: reported C repro on 2024/04/22 17:59
Bug presence: origin:upstream
[Documentation on labels]
Reported-by: syzbot+bdff56916773908c2fcc@syzkaller.appspotmail.com
First crash: 16d, last: 1d05h
Bug presence (1)
Date Name Commit Repro Result
2024/04/29 upstream (ToT) e67572cd2204 C [report] KASAN: use-after-free Read in sysv_new_inode
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
upstream KASAN: use-after-free Read in sysv_new_inode fs 1 93d 89d 0/26 auto-obsoleted due to no activity on 2024/04/05 09:37
upstream KASAN: use-after-free Read in sysv_new_inode (2) fs 97 10h04m 28d 0/26 moderation: reported on 2024/04/10 19:08
linux-5.15 KASAN: use-after-free Read in sysv_new_inode origin:upstream C 6 9h42m 24d 0/3 upstream: reported C repro on 2024/04/14 13:45

Sample crash report:
==================================================================
BUG: KASAN: slab-out-of-bounds in sysv_new_inode+0xd8c/0xf04 fs/sysv/ialloc.c:153
Read of size 2 at addr ffff0000e70ee1ce by task syz-executor772/4336

CPU: 0 PID: 4336 Comm: syz-executor772 Not tainted 6.1.88-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 03/27/2024
Call trace:
 dump_backtrace+0x1c8/0x1f4 arch/arm64/kernel/stacktrace.c:158
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:165
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
 print_address_description mm/kasan/report.c:284 [inline]
 print_report+0x174/0x4c0 mm/kasan/report.c:395
 kasan_report+0xd4/0x130 mm/kasan/report.c:495
 __asan_report_load2_noabort+0x2c/0x38 mm/kasan/report_generic.c:349
 sysv_new_inode+0xd8c/0xf04 fs/sysv/ialloc.c:153
 sysv_mknod+0x5c/0x100 fs/sysv/namei.c:53
 sysv_create+0x38/0x4c fs/sysv/namei.c:67
 lookup_open fs/namei.c:3484 [inline]
 open_last_lookups fs/namei.c:3552 [inline]
 path_openat+0xeac/0x2548 fs/namei.c:3782
 do_filp_open+0x1bc/0x3cc fs/namei.c:3812
 do_sys_openat2+0x128/0x3d8 fs/open.c:1318
 do_sys_open fs/open.c:1334 [inline]
 __do_sys_openat fs/open.c:1350 [inline]
 __se_sys_openat fs/open.c:1345 [inline]
 __arm64_sys_openat+0x1f0/0x240 fs/open.c:1345
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2c0 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
 do_el0_svc+0x64/0x218 arch/arm64/kernel/syscall.c:206
 el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

Allocated by task 4335:
 kasan_save_stack mm/kasan/common.c:45 [inline]
 kasan_set_track+0x4c/0x80 mm/kasan/common.c:52
 kasan_save_alloc_info+0x24/0x30 mm/kasan/generic.c:505
 __kasan_slab_alloc+0x74/0x8c mm/kasan/common.c:328
 kasan_slab_alloc include/linux/kasan.h:201 [inline]
 slab_post_alloc_hook+0x74/0x458 mm/slab.h:737
 slab_alloc_node mm/slub.c:3398 [inline]
 slab_alloc mm/slub.c:3406 [inline]
 __kmem_cache_alloc_lru mm/slub.c:3413 [inline]
 kmem_cache_alloc+0x230/0x37c mm/slub.c:3422
 kmem_cache_zalloc include/linux/slab.h:682 [inline]
 alloc_buffer_head+0x2c/0x150 fs/buffer.c:2899
 alloc_page_buffers+0x398/0x980 fs/buffer.c:829
 create_empty_buffers+0x4c/0x5c4 fs/buffer.c:1543
 create_page_buffers+0x180/0x2cc fs/buffer.c:1660
 block_read_full_folio+0x13c/0x98c fs/buffer.c:2251
 sysv_read_folio+0x28/0x38 fs/sysv/itree.c:463
 filemap_read_folio+0x14c/0x39c mm/filemap.c:2461
 do_read_cache_folio+0x24c/0x544 mm/filemap.c:3598
 do_read_cache_page mm/filemap.c:3640 [inline]
 read_cache_page+0x6c/0x180 mm/filemap.c:3649
 read_mapping_page include/linux/pagemap.h:791 [inline]
 dir_get_page fs/sysv/dir.c:58 [inline]
 sysv_find_entry+0x170/0x5a8 fs/sysv/dir.c:146
 sysv_inode_by_name+0xa0/0x330 fs/sysv/dir.c:360
 sysv_lookup+0x74/0xe4 fs/sysv/namei.c:38
 lookup_open fs/namei.c:3462 [inline]
 open_last_lookups fs/namei.c:3552 [inline]
 path_openat+0xd3c/0x2548 fs/namei.c:3782
 do_filp_open+0x1bc/0x3cc fs/namei.c:3812
 do_sys_openat2+0x128/0x3d8 fs/open.c:1318
 do_sys_open fs/open.c:1334 [inline]
 __do_sys_openat fs/open.c:1350 [inline]
 __se_sys_openat fs/open.c:1345 [inline]
 __arm64_sys_openat+0x1f0/0x240 fs/open.c:1345
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2c0 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
 do_el0_svc+0x64/0x218 arch/arm64/kernel/syscall.c:206
 el0_svc+0x58/0x168 arch/arm64/kernel/entry-common.c:637
 el0t_64_sync_handler+0x84/0xf0 arch/arm64/kernel/entry-common.c:655
 el0t_64_sync+0x18c/0x190 arch/arm64/kernel/entry.S:585

The buggy address belongs to the object at ffff0000e70ee0e8
 which belongs to the cache buffer_head of size 168
The buggy address is located 62 bytes to the right of
 168-byte region [ffff0000e70ee0e8, ffff0000e70ee190)

The buggy address belongs to the physical page:
page:000000000a184439 refcount:1 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x1270ee
flags: 0x5ffe00000000200(slab|node=0|zone=2|lastcpupid=0xfff)
raw: 05ffe00000000200 0000000000000000 dead000000000122 ffff0000c03df980
raw: 0000000000000000 0000000000110011 00000001ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000e70ee080: 00 00 00 00 00 fc fc fc fc fc fc fc fc 00 00 00
 ffff0000e70ee100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff0000e70ee180: 00 00 fc fc fc fc fc fc fc fc 00 00 00 00 00 00
                                              ^
 ffff0000e70ee200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 fc
 ffff0000e70ee280: fc fc fc fc fc fc fc 00 00 00 00 00 00 00 00 00
==================================================================

Crashes (3):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/04/28 01:54 linux-6.1.y f2295faba5e8 07b455f9 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-6-1-kasan-arm64 KASAN: slab-out-of-bounds Read in sysv_new_inode
2024/05/07 21:37 linux-6.1.y 909ba1f1b414 cb2dcc0e .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan KASAN: use-after-free Read in sysv_new_inode
2024/04/22 17:58 linux-6.1.y 6741e066ec76 36c961ad .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-6-1-kasan KASAN: use-after-free Read in sysv_new_inode
* Struck through repros no longer work on HEAD.