syzbot


KASAN: use-after-free Read in hdr_find_e

Status: fixed on 2023/02/24 13:50
Subsystems: ntfs3
[Documentation on labels]
Reported-by: syzbot+c986d2a447ac6fb27b02@syzkaller.appspotmail.com
Fix commit: 0e8235d28f3a fs/ntfs3: Check fields while reading
First crash: 577d, last: 435d
Cause bisection: introduced by (bisect log) :
commit 6e5be40d32fb1907285277c02e74493ed43d77fe
Author: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Date: Fri Aug 13 14:21:30 2021 +0000

  fs/ntfs3: Add NTFS3 in fs/Kconfig and fs/Makefile

Crash: KASAN: slab-out-of-bounds Read in hdr_find_e (log)
Repro: C syz .config
  
Fix bisection: fixed by (bisect log) :
commit 0e8235d28f3a0e9eda9f02ff67ee566d5f42b66b
Author: Konstantin Komarov <almaz.alexandrovich@paragon-software.com>
Date: Mon Oct 10 10:15:33 2022 +0000

  fs/ntfs3: Check fields while reading

  
Discussions (1)
Title Replies (including bot) Last reply
[syzbot] KASAN: use-after-free Read in hdr_find_e 1 (4) 2023/02/02 07:00
Similar bugs (4)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 BUG: unable to handle kernel NULL pointer dereference in hdr_find_e origin:upstream missing-backport C done 23 305d 401d 3/3 fixed on 2023/09/08 14:10
upstream BUG: unable to handle kernel NULL pointer dereference in hdr_find_e ntfs3 2 378d 392d 0/26 auto-obsoleted due to no activity on 2023/07/13 08:32
upstream BUG: unable to handle kernel NULL pointer dereference in hdr_find_e (2) ntfs3 C done 4 195d 267d 25/26 fixed on 2023/12/21 03:45
linux-5.15 BUG: unable to handle kernel NULL pointer dereference in hdr_find_e origin:lts-only C done 8 316d 401d 3/3 fixed on 2023/08/01 16:10

Sample crash report:
ntfs3: loop0: Failed to load $Extend.
==================================================================
BUG: KASAN: use-after-free in hdr_find_e+0x255/0x580 fs/ntfs3/index.c:689
Read of size 2 at addr ffff88809904451f by task syz-executor402/3608

CPU: 0 PID: 3608 Comm: syz-executor402 Not tainted 6.0.0-syzkaller-03015-g2bca25eaeba6 #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 09/22/2022
Call Trace:
 <TASK>
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x1b1/0x28e lib/dump_stack.c:106
 print_address_description+0x65/0x4b0 mm/kasan/report.c:317
 print_report+0x108/0x1f0 mm/kasan/report.c:433
 kasan_report+0xc3/0xf0 mm/kasan/report.c:495
 hdr_find_e+0x255/0x580 fs/ntfs3/index.c:689
 indx_find+0x30d/0xb20 fs/ntfs3/index.c:1068
 dir_search_u+0x161/0x320 fs/ntfs3/dir.c:254
 ntfs_lookup+0x112/0x1b0 fs/ntfs3/namei.c:83
 __lookup_slow+0x266/0x3a0 fs/namei.c:1685
 lookup_slow+0x53/0x70 fs/namei.c:1702
 walk_component+0x2e1/0x410 fs/namei.c:1993
 lookup_last fs/namei.c:2450 [inline]
 path_lookupat+0x17d/0x450 fs/namei.c:2474
 filename_lookup+0x274/0x650 fs/namei.c:2503
 vfs_statx+0x117/0x4a0 fs/stat.c:229
 vfs_fstatat fs/stat.c:267 [inline]
 __do_sys_newfstatat fs/stat.c:437 [inline]
 __se_sys_newfstatat+0xed/0x7d0 fs/stat.c:431
 do_syscall_x64 arch/x86/entry/common.c:50 [inline]
 do_syscall_64+0x3d/0xb0 arch/x86/entry/common.c:80
 entry_SYSCALL_64_after_hwframe+0x63/0xcd
RIP: 0033:0x7f7f80a12599
Code: ff ff c3 66 2e 0f 1f 84 00 00 00 00 00 0f 1f 40 00 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 c0 ff ff ff f7 d8 64 89 01 48
RSP: 002b:00007ffee73b7e18 EFLAGS: 00000246 ORIG_RAX: 0000000000000106
RAX: ffffffffffffffda RBX: 0030656c69662f2e RCX: 00007f7f80a12599
RDX: 0000000000000000 RSI: 0000000020000380 RDI: ffffffffffffff9c
RBP: 00007f7f809d1ad0 R08: 00007ffee73b7d00 R09: 0000000000000000
R10: 0000000000000000 R11: 0000000000000246 R12: 00007f7f809d1b60
R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
 </TASK>

The buggy address belongs to the physical page:
page:ffffea0002641100 refcount:0 mapcount:0 mapping:0000000000000000 index:0x0 pfn:0x99044
flags: 0xfff00000000000(node=0|zone=1|lastcpupid=0x7ff)
raw: 00fff00000000000 ffffea0002641108 ffffea0002641108 0000000000000000
raw: 0000000000000000 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected
page_owner info is not present (never set?)

Memory state around the buggy address:
 ffff888099044400: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff888099044480: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>ffff888099044500: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                            ^
 ffff888099044580: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff888099044600: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================

Crashes (66):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2022/10/05 23:57 upstream 2bca25eaeba6 2c6543ad .config strace log report syz C [disk image] [vmlinux] [mounted in repro] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/09/27 07:44 upstream 3800a713b607 10323ddf .config console log report syz C ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/11/07 00:27 linux-next 0cdb3579f1ee 6d752409 .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 hdr_find_e
2022/12/14 07:00 upstream 764822972d64 e660de91 .config strace log report syz C [mounted in repro] ci-upstream-kasan-gce-root BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/11/28 18:57 upstream b7b275e60bcd 247de55b .config strace log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/10/10 02:28 upstream a6afa4199d3d aea5da89 .config strace log report syz C [disk image] [vmlinux] [mounted in repro] ci-upstream-kasan-gce-root KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/11 11:06 upstream 55be6084c8e0 2b253ced .config strace log report syz C [disk image] [vmlinux] [mounted in repro] ci-upstream-kasan-gce-root KASAN: use-after-free Read in hdr_find_e
2022/11/21 07:17 upstream eb7081409f94 5bb70014 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/11/20 06:12 upstream fe24a97cf254 5bb70014 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/11/16 10:49 upstream 81e7cfa3a9eb 3a127a31 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/11/12 16:02 upstream 8f2975c2bb4c f42ee5d8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/11/12 11:23 upstream f9bbe0c99e5b 3ead01ad .config console log report info ci-upstream-kasan-gce-root KASAN: use-after-free Read in hdr_find_e
2022/11/08 20:45 upstream 59f2f4b8a757 060f945e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/11/03 10:42 upstream b229b6ca5abb 7a2ebf95 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/11/02 09:57 upstream b229b6ca5abb 08977f5d .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/10/31 04:05 upstream b229b6ca5abb 2a71366b .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/10/24 23:22 upstream 247f34f7b803 faae2fda .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/10/24 04:12 upstream d47136c28015 23bf86af .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/10/17 18:13 upstream 493ffd6605b2 94744d21 .config console log report info ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/10/17 10:23 upstream 55be6084c8e0 67cb024c .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-root KASAN: use-after-free Read in hdr_find_e
2022/10/14 20:10 upstream 55be6084c8e0 4954e4b2 .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-smack-root KASAN: use-after-free Read in hdr_find_e
2022/10/13 05:13 upstream 493ffd6605b2 3f6b40a1 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/10/09 21:27 upstream a6afa4199d3d aea5da89 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: use-after-free Read in hdr_find_e
2022/10/08 17:05 upstream e8bc52cb8df8 aea5da89 .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-smack-root KASAN: use-after-free Read in hdr_find_e
2022/10/30 01:09 upstream 200204f56f3b 2a71366b .config console log report info ci-qemu-upstream-386 KASAN: use-after-free Read in hdr_find_e
2023/02/16 15:08 upstream 033c40a89f55 38b317a7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/26 03:45 upstream 1b929c02afd3 9da18ae8 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/17 09:41 upstream 84e57d292203 05494336 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/17 01:36 upstream 84e57d292203 05494336 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/16 16:27 upstream 84e57d292203 05494336 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/15 09:01 upstream e2ca6ba6ba01 b18f0a64 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/14 01:56 upstream 02bf43c7b7f7 f6511626 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/14 00:02 upstream 02bf43c7b7f7 f6511626 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/13 06:57 upstream 830b3c68c1fb 67be1ae7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/13 01:42 upstream 830b3c68c1fb 67be1ae7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/09 23:55 upstream 0d1409e4ff08 67be1ae7 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/07 00:43 upstream 8ed710da2873 d88f3abb .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/06 23:27 upstream 8ed710da2873 d88f3abb .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/12/02 19:03 upstream a4412fdd49dc e080de16 .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/11/19 07:13 upstream ab290eaddc4c 5bb70014 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/11/17 10:37 upstream cc675d22e422 3a127a31 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/11/17 05:06 upstream 59d0d52c30d4 3a127a31 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/11/08 13:09 upstream 59f2f4b8a757 060f945e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/11/05 20:15 upstream b208b9fbbcba 6d752409 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/11/01 08:06 upstream b229b6ca5abb a1d8560a .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root KASAN: slab-out-of-bounds Read in hdr_find_e
2022/11/01 06:42 upstream 200204f56f3b 43f72c2d .config console log report info ci-qemu-upstream KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/30 03:14 upstream b229b6ca5abb 2a71366b .config console log report info [disk image] [vmlinux] [kernel image] ci-upstream-kasan-gce-root KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/30 01:21 upstream b229b6ca5abb 2a71366b .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/30 00:58 upstream b229b6ca5abb 2a71366b .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/28 12:19 upstream b229b6ca5abb 8168b69e .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/28 01:17 upstream b229b6ca5abb 5c716ff6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/27 21:58 upstream b229b6ca5abb 5c716ff6 .config console log report info [disk image] [vmlinux] [kernel image] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/21 18:41 upstream 6d36c728bc2e 63e790dd .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/21 03:17 upstream 493ffd6605b2 a0fd4dab .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/21 00:17 upstream 493ffd6605b2 a0fd4dab .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/19 03:42 upstream 493ffd6605b2 b31320fc .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/14 17:53 upstream 493ffd6605b2 4954e4b2 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/12 03:11 upstream 493ffd6605b2 02b6492e .config console log report info [disk image] [vmlinux] ci2-upstream-fs BUG: unable to handle kernel paging request in hdr_find_e
2022/10/11 12:28 upstream 493ffd6605b2 5bcf0c31 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/10 17:50 upstream 493ffd6605b2 5bcf0c31 .config console log report info [disk image] [vmlinux] ci2-upstream-fs KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/10 16:14 upstream 4899a36f91a9 aea5da89 .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-smack-root BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/10/08 16:47 upstream e8bc52cb8df8 aea5da89 .config console log report info [disk image] [vmlinux] ci-upstream-kasan-gce-root KASAN: slab-out-of-bounds Read in hdr_find_e
2022/10/06 18:10 upstream 833477fce7a1 80b58a42 .config console log report info [disk image] [vmlinux] ci2-upstream-fs BUG: unable to handle kernel NULL pointer dereference in hdr_find_e
2022/11/01 06:29 upstream 200204f56f3b 43f72c2d .config console log report info ci-qemu-upstream-386 KASAN: slab-out-of-bounds Read in hdr_find_e
* Struck through repros no longer work on HEAD.