syzbot


KASAN: use-after-free Read in ntfs_lookup_inode_by_name

Status: upstream: reported C repro on 2023/04/12 03:50
Bug presence: origin:upstream
Labels: missing-backport
[Documentation on labels]
Reported-by: syzbot+189e02963bc7402eecce@syzkaller.appspotmail.com
First crash: 428d, last: 72d
Fix bisection: failed (error log, bisect log)
  
Bug presence (3)
Date Name Commit Repro Result
2024/04/02 linux-5.15.y (ToT) 9465fef4ae35 C [report] KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2023/05/16 upstream (ToT) f1fcbaa18b28 C [report] KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2024/04/02 upstream (ToT) 026e680b0a08 C Didn't crash
Similar bugs (3)
Kernel Title Repro Cause bisect Fix bisect Count Last Reported Patched Status
linux-6.1 KASAN: use-after-free Read in ntfs_lookup_inode_by_name origin:upstream missing-backport C done 4 49d 396d 0/3 upstream: reported C repro on 2023/05/14 03:12
upstream KASAN: use-after-free Read in ntfs_lookup_inode_by_name ntfs3 C error done 17 95d 531d 26/28 fixed on 2024/03/20 11:33
linux-4.19 KASAN: use-after-free Read in ntfs_lookup_inode_by_name ntfs C error 1 523d 523d 0/1 upstream: reported C repro on 2023/01/07 03:24
Fix bisection attempts (2)
Created Duration User Patch Repo Result
2023/10/01 16:46 0m bisect fix linux-5.15.y error job log (0)
2023/07/20 02:46 4h18m bisect fix linux-5.15.y job log (0) log

Sample crash report:
ntfs: (device loop0): load_and_init_upcase(): Failed to load $UpCase from the volume. Using default.
ntfs: volume version 3.1.
==================================================================
BUG: KASAN: use-after-free in sle64_to_cpup fs/ntfs/endian.h:46 [inline]
BUG: KASAN: use-after-free in ntfs_lookup_inode_by_name+0xb90/0x2694 fs/ntfs/dir.c:292
Read of size 8 at addr ffff0000dd695962 by task syz-executor346/3960

CPU: 0 PID: 3960 Comm: syz-executor346 Not tainted 5.15.150-syzkaller #0
Hardware name: Google Google Compute Engine/Google Compute Engine, BIOS Google 01/25/2024
Call trace:
 dump_backtrace+0x0/0x530 arch/arm64/kernel/stacktrace.c:152
 show_stack+0x2c/0x3c arch/arm64/kernel/stacktrace.c:216
 __dump_stack lib/dump_stack.c:88 [inline]
 dump_stack_lvl+0x108/0x170 lib/dump_stack.c:106
 print_address_description+0x7c/0x3f0 mm/kasan/report.c:248
 __kasan_report mm/kasan/report.c:434 [inline]
 kasan_report+0x174/0x1e4 mm/kasan/report.c:451
 __asan_report_load8_noabort+0x44/0x50 mm/kasan/report_generic.c:309
 sle64_to_cpup fs/ntfs/endian.h:46 [inline]
 ntfs_lookup_inode_by_name+0xb90/0x2694 fs/ntfs/dir.c:292
 check_windows_hibernation_status+0xe8/0x5e4 fs/ntfs/super.c:1274
 load_system_files+0x31ec/0x4228 fs/ntfs/super.c:1989
 ntfs_fill_super+0x1670/0x24e8 fs/ntfs/super.c:2894
 mount_bdev+0x274/0x370 fs/super.c:1387
 ntfs_mount+0x44/0x58 fs/ntfs/super.c:3051
 legacy_get_tree+0xd4/0x16c fs/fs_context.c:611
 vfs_get_tree+0x90/0x274 fs/super.c:1517
 do_new_mount+0x278/0x8fc fs/namespace.c:3005
 path_mount+0x594/0x101c fs/namespace.c:3335
 do_mount fs/namespace.c:3348 [inline]
 __do_sys_mount fs/namespace.c:3556 [inline]
 __se_sys_mount fs/namespace.c:3533 [inline]
 __arm64_sys_mount+0x510/0x5e0 fs/namespace.c:3533
 __invoke_syscall arch/arm64/kernel/syscall.c:38 [inline]
 invoke_syscall+0x98/0x2b8 arch/arm64/kernel/syscall.c:52
 el0_svc_common+0x138/0x258 arch/arm64/kernel/syscall.c:142
 do_el0_svc+0x58/0x14c arch/arm64/kernel/syscall.c:181
 el0_svc+0x7c/0x1f0 arch/arm64/kernel/entry-common.c:608
 el0t_64_sync_handler+0x84/0xe4 arch/arm64/kernel/entry-common.c:626
 el0t_64_sync+0x1a0/0x1a4 arch/arm64/kernel/entry.S:584

The buggy address belongs to the page:
page:00000000ad4b0225 refcount:0 mapcount:0 mapping:0000000000000000 index:0x1 pfn:0x11d695
flags: 0x5ffc00000000000(node=0|zone=2|lastcpupid=0x7ff)
raw: 05ffc00000000000 fffffc000374c8c8 fffffc000375a508 0000000000000000
raw: 0000000000000001 0000000000000000 00000000ffffffff 0000000000000000
page dumped because: kasan: bad access detected

Memory state around the buggy address:
 ffff0000dd695800: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff0000dd695880: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
>ffff0000dd695900: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
                                                       ^
 ffff0000dd695980: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
 ffff0000dd695a00: ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff ff
==================================================================

Crashes (8):
Time Kernel Commit Syzkaller Config Log Report Syz repro C repro VM info Assets (help?) Manager Title
2024/03/06 07:08 linux-5.15.y 80efc6265290 f39a7eed .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2023/05/13 00:57 linux-5.15.y b0ece631f84a ecca8a24 .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan-arm64 KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2023/06/08 19:50 linux-5.15.y d7af3e5ba454 058b3a5a .config console log report syz C [disk image] [vmlinux] [kernel image] [mounted in repro] ci2-linux-5-15-kasan KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2024/03/06 06:51 linux-5.15.y 80efc6265290 f39a7eed .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2023/12/11 05:04 linux-5.15.y 8a1d809b0545 28b24332 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2023/08/04 14:32 linux-5.15.y 38d4ca22a528 74621247 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2023/05/12 17:23 linux-5.15.y b0ece631f84a ecca8a24 .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 KASAN: use-after-free Read in ntfs_lookup_inode_by_name
2023/04/12 03:50 linux-5.15.y d86dfc4d95cd 49faf98d .config console log report info [disk image] [vmlinux] [kernel image] ci2-linux-5-15-kasan-arm64 KASAN: use-after-free Read in ntfs_lookup_inode_by_name
* Struck through repros no longer work on HEAD.