syzbot


KASAN: slab-out-of-bounds Read in ntfs_fill_super

Status: upstream: reported C repro on 2022/10/01 14:27
Labels: ntfs3 (incorrect?)
Reported-by: syzbot+bd6d0c83fe8442ad6ef5@syzkaller.appspotmail.com
First crash: 240d, last: 8h21m

Cause bisection: failed (error log, bisect log)

Fix bisection: fixed by (bisect log) [merge commit]:
commit 675f176b4dcc2b75adbcea7ba0e9a649527f53bd
Author: David S. Miller <davem@davemloft.net>
Date: Fri Feb 17 11:06:39 2023 +0000

  Merge ra.kernel.org:/pub/scm/linux/kernel/git/netdev/net

Discussions (1)
Title Replies (including bot) Last reply
[syzbot] KASAN: slab-out-of-bounds Read in ntfs_fill_super 0 (2) 2022/10/10 17:12
Last patch testing requests (1)
Created Duration User Patch Repo Result
2023/05/06 01:28 33m retest repro upstream OK log

Sample crash report:
memfd_create() without MFD_EXEC nor MFD_NOEXEC_SEAL, pid=5003 'syz-executor201'
loop0: detected capacity change from 0 to 4096
ntfs3: loop0: Different NTFS sector size (4096) and media sector size (512).
ntfs3: loop0: RAW NTFS volume: Filesystem size 16384.00 Gb > volume size 0.00 Gb. Mount in read-only.
ntfs3: loop0: NTFS 16384.00 Gb is too big to use 32 bits per cluster.
==================================================================
BUG: KASAN: use-after-free in memcmp+0x173/0x1c0 lib/string.c:681
Read of size 8 at addr ffff888072dad002 by task syz-executor201/5003

CPU: 1 PID: 5003 Comm: syz-executor201 Not tainted 6.4.0-rc2-next-20230515-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 04/28/2023
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0xd9/0x150 lib/dump_stack.c:106
 print_address_description.constprop.0+0x2c/0x3c0 mm/kasan/report.c:351
 print_report mm/kasan/report.c:462 [inline]
 kasan_report+0x11c/0x130 mm/kasan/report.c:571
 memcmp+0x173/0x1c0 lib/string.c:681
 memcmp include/linux/fortify-string.h:665 [inline]
 ntfs_init_from_boot fs/ntfs3/super.c:860 [inline]
 ntfs_fill_super+0x7fc/0x4240 fs/ntfs3/super.c:1141
 get_tree_bdev+0x44a/0x770 fs/super.c:1303
 vfs_get_tree+0x8d/0x350 fs/super.c:1510
 do_new_mount fs/namespace.c:3039 [inline]
 path_mount+0x134b/0x1e40 fs/namespace.c:3369
 do_mount fs/namespace.c:3382 [inline]
 __do_sys_mount fs/namespace.c:3591 [inline]
 __se_sys_mount fs/namespace.c:3568 [inline]
 __x64_sys_mount+0x283/0x300 fs/namespace.c:3568
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
RIP: 0033:0x7fc57f01b65a
Code: 83 c4 08 5b 5d c3 66 2e 0f 1f 84 00 00 00 00 00 c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 44 00 00 49 89 ca b8 a5 00 00 00 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007fff896baae8 EFLAGS: 00000286 ORIG_RAX: 00000000000000a5
RAX: ffffffffffffffda RBX: 0000000000000003 RCX: 00007fc57f01b65a
RDX: 0000000020000080 RSI: 000000002001f1c0 RDI: 00007fff896bab00
RBP: 00007fff896bab00 R08: 00007fff896bab40 R09: 00007fff896bab50
R10: 0000000000000000 R11: 0000000000000286 R12: 0000000000000004
R13: 00005555562982c0 R14: 0000000000000000 R15: 00007fff896bab40
 </TASK>

The buggy address belongs to the physical page:
page:ffffea0001cb6b40 refcount:0 mapcount:0 mapping:0000000000000000 index:0x1 pfn:0x72dad
flags: 0xfff00000000000(node=0|zone=1|lastcpupid=0x7ff)
page_type: 0xffffffff()
raw: 00fff00000000000 ffffea0001cb6b88 ffff8880b9943660 0000000000000000
raw: 0000000000000001 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner tracks the page as freed
page last allocated via order 0, migratetype Movable, gfp_mask 0x140dca(GFP_HIGHUSER_MOVABLE|__GFP_COMP|__GFP_ZERO), pid 4995, tgid 4995 (sshd), ts 52494388741, free_ts 52519047373
 set_page_owner include/linux/page_owner.h:31 [inline]
 post_alloc_hook+0x2db/0x350 mm/page_alloc.c:1731
 prep_new_page mm/page_alloc.c:1738 [inline]
 get_page_from_freelist+0xf67/0x2a80 mm/page_alloc.c:3539
 __alloc_pages+0x1cb/0x4a0 mm/page_alloc.c:4805
 __folio_alloc+0x16/0x40 mm/page_alloc.c:4837
 vma_alloc_folio+0x155/0x850 mm/mempolicy.c:2240
 do_anonymous_page mm/memory.c:4088 [inline]
 do_pte_missing mm/memory.c:3648 [inline]
 handle_pte_fault mm/memory.c:4950 [inline]
 __handle_mm_fault+0x2263/0x4170 mm/memory.c:5092
 handle_mm_fault+0x2af/0x9f0 mm/memory.c:5246
 do_user_addr_fault+0x2ca/0x1210 arch/x86/mm/fault.c:1349
 handle_page_fault arch/x86/mm/fault.c:1534 [inline]
 exc_page_fault+0x98/0x170 arch/x86/mm/fault.c:1590
 asm_exc_page_fault+0x26/0x30 arch/x86/include/asm/idtentry.h:570
page last free stack trace:
 reset_page_owner include/linux/page_owner.h:24 [inline]
 free_pages_prepare mm/page_alloc.c:1302 [inline]
 free_unref_page_prepare+0x4dd/0xb90 mm/page_alloc.c:2600
 free_unref_page_list+0xe3/0xa70 mm/page_alloc.c:2741
 release_pages+0xcd8/0x1380 mm/swap.c:1042
 tlb_batch_pages_flush+0xa8/0x1a0 mm/mmu_gather.c:97
 tlb_flush_mmu_free mm/mmu_gather.c:292 [inline]
 tlb_flush_mmu mm/mmu_gather.c:299 [inline]
 tlb_finish_mmu+0x14b/0x7e0 mm/mmu_gather.c:391
 unmap_region+0x23d/0x2d0 mm/mmap.c:2237
 do_vmi_align_munmap+0xe6c/0x1600 mm/mmap.c:2493
 do_vmi_munmap+0x26e/0x2c0 mm/mmap.c:2550
 __vm_munmap+0x133/0x3b0 mm/mmap.c:2828
 __do_sys_munmap mm/mmap.c:2853 [inline]
 __se_sys_munmap mm/mmap.c:2850 [inline]
 __x64_sys_munmap+0x62/0x80 mm/mmap.c:2850
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x39/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd

Memory state around the buggy address:
 ffff888072dacf00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
 ffff888072dacf80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
>ffff888072dad000: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                   ^
 ffff888072dad080: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff888072dad100: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================

Crashes (26):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets Manager Title
2023/05/16 08:33 linux-next 715abedee4cd 71b00cfb .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/10 23:09 linux-next 578215f3e21c 0fbd49f4 .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2022/10/20 15:31 upstream 55be6084c8e0 b31320fc .config strace log report syz C [disk image] [vmlinux] [mounted in repro] ci-upstream-kasan-gce-root general protection fault in ntfs_fill_super
2022/10/10 17:12 upstream 493ffd6605b2 5bcf0c31 .config strace log report syz C [disk image] [vmlinux] [mounted in repro] ci2-upstream-fs general protection fault in ntfs_fill_super
2022/10/12 17:17 upstream 55be6084c8e0 89b5a509 .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-root KASAN: slab-out-of-bounds Read in ntfs_fill_super
2022/10/10 19:43 upstream 4899a36f91a9 aea5da89 .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-root KASAN: slab-out-of-bounds Read in ntfs_fill_super
2022/10/01 08:59 upstream ffb4d94b4314 feb56351 .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-root KASAN: slab-out-of-bounds Read in ntfs_fill_super
2022/11/13 05:49 upstream fef7fd48922d f42ee5d8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Write in ntfs_fill_super
2022/10/23 07:03 upstream 4da34b7d175d c0b80a55 .config console log report info [disk image] [vmlinux] ci2-upstream-fs general protection fault in ntfs_fill_super
2022/10/17 20:44 upstream 493ffd6605b2 94744d21 .config console log report info [disk image] [vmlinux] ci2-upstream-fs general protection fault in ntfs_fill_super
2022/10/11 07:06 upstream 493ffd6605b2 5bcf0c31 .config console log report info [disk image] [vmlinux] ci2-upstream-fs general protection fault in ntfs_fill_super
2022/10/10 15:41 upstream 493ffd6605b2 5bcf0c31 .config console log report info [disk image] [vmlinux] ci2-upstream-fs general protection fault in ntfs_fill_super
2022/10/10 05:02 upstream 4899a36f91a9 aea5da89 .config console log report info [disk image] [vmlinux] ci2-upstream-fs general protection fault in ntfs_fill_super
2022/10/07 21:40 upstream 4c86114194e6 79a59635 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: stack-out-of-bounds Read in ntfs_fill_super
2022/10/07 13:11 upstream 4c86114194e6 79a59635 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: stack-out-of-bounds Read in ntfs_fill_super
2022/10/07 06:37 upstream 833477fce7a1 80b58a42 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: stack-out-of-bounds Read in ntfs_fill_super
2022/10/07 03:17 upstream 833477fce7a1 80b58a42 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: stack-out-of-bounds Read in ntfs_fill_super
2022/10/06 20:29 upstream 833477fce7a1 80b58a42 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: stack-out-of-bounds Read in ntfs_fill_super
2023/05/30 00:10 linux-next 715abedee4cd cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/28 16:03 linux-next 715abedee4cd cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/28 14:39 linux-next 715abedee4cd cf184559 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/22 03:19 linux-next 715abedee4cd 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/20 19:48 linux-next 715abedee4cd 4bce1a3e .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/17 23:03 linux-next 715abedee4cd eaac4681 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/16 06:04 linux-next 715abedee4cd 71b00cfb .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
2023/05/10 20:32 linux-next 578215f3e21c 0fbd49f4 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-linux-next-kasan-gce-root KASAN: use-after-free Read in ntfs_fill_super
* Struck through repros no longer work on HEAD.