CVE-2026-97438
Severity CVSS v4.0:
Pending analysis
Type:
Unavailable / Other
Publication date:
24/09/2026
Last modified:
25/09/2026
Description
In the Linux kernel, the following vulnerability has been resolved:<br />
<br />
fs/ntfs3: validate index entry key bounds<br />
<br />
[BUG]<br />
A malformed NTFS directory index entry can advertise a key_size larger<br />
than the bytes actually present in its NTFS_DE payload. Directory lookup<br />
then passes that malformed key to cmp_fnames(), which can read past the<br />
end of the kmalloc&#39;ed index buffer.<br />
<br />
BUG: KASAN: slab-out-of-bounds in fname_full_size fs/ntfs3/ntfs.h:590 [inline]<br />
BUG: KASAN: slab-out-of-bounds in cmp_fnames+0x1ea/0x230 fs/ntfs3/index.c:46<br />
Read of size 1 at addr ffff88801c313018 by task syz.6.3365/9279<br />
<br />
Call Trace:<br />
__dump_stack lib/dump_stack.c:94 [inline]<br />
dump_stack_lvl+0xbe/0x130 lib/dump_stack.c:120<br />
print_address_description mm/kasan/report.c:378 [inline]<br />
print_report+0xd1/0x650 mm/kasan/report.c:482<br />
kasan_report+0xfb/0x140 mm/kasan/report.c:595<br />
__asan_report_load1_noabort+0x14/0x30 mm/kasan/report_generic.c:378<br />
fname_full_size fs/ntfs3/ntfs.h:590 [inline]<br />
cmp_fnames+0x1ea/0x230 fs/ntfs3/index.c:46<br />
hdr_find_e.isra.0+0x3ed/0x670 fs/ntfs3/index.c:762<br />
indx_find+0x4b5/0x900 fs/ntfs3/index.c:1186<br />
dir_search_u+0x2c0/0x460 fs/ntfs3/dir.c:254<br />
ntfs_lookup+0x1cc/0x2a0 fs/ntfs3/namei.c:85<br />
__lookup_slow+0x241/0x450 fs/namei.c:1816<br />
lookup_slow fs/namei.c:1833 [inline]<br />
walk_component+0x31c/0x570 fs/namei.c:2151<br />
link_path_walk+0x592/0xd60 fs/namei.c:2519<br />
path_lookupat+0x138/0x660 fs/namei.c:2675<br />
filename_lookup+0x1f3/0x560 fs/namei.c:2705<br />
filename_setxattr+0xad/0x1c0 fs/xattr.c:660<br />
path_setxattrat+0x1d8/0x280 fs/xattr.c:713<br />
__do_sys_lsetxattr fs/xattr.c:754 [inline]<br />
__se_sys_lsetxattr fs/xattr.c:750 [inline]<br />
__x64_sys_lsetxattr+0xd0/0x150 fs/xattr.c:750<br />
...<br />
<br />
Allocated by task 9279:<br />
kasan_save_stack+0x39/0x70 mm/kasan/common.c:56<br />
kasan_save_track+0x14/0x40 mm/kasan/common.c:77<br />
kasan_save_alloc_info+0x37/0x60 mm/kasan/generic.c:573<br />
poison_kmalloc_redzone mm/kasan/common.c:400 [inline]<br />
__kasan_kmalloc+0xc3/0xd0 mm/kasan/common.c:417<br />
kasan_kmalloc include/linux/kasan.h:262 [inline]<br />
__do_kmalloc_node mm/slub.c:5650 [inline]<br />
__kmalloc_noprof+0x2bd/0x900 mm/slub.c:5662<br />
kmalloc_noprof include/linux/slab.h:961 [inline]<br />
indx_read+0x41d/0xad0 fs/ntfs3/index.c:1059<br />
indx_find+0x447/0x900 fs/ntfs3/index.c:1179<br />
dir_search_u+0x2c0/0x460 fs/ntfs3/dir.c:254<br />
ntfs_lookup+0x1cc/0x2a0 fs/ntfs3/namei.c:85<br />
__lookup_slow+0x241/0x450 fs/namei.c:1816<br />
lookup_slow fs/namei.c:1833 [inline]<br />
walk_component+0x31c/0x570 fs/namei.c:2151<br />
link_path_walk+0x592/0xd60 fs/namei.c:2519<br />
path_lookupat+0x138/0x660 fs/namei.c:2675<br />
filename_lookup+0x1f3/0x560 fs/namei.c:2705<br />
filename_setxattr+0xad/0x1c0 fs/xattr.c:660<br />
path_setxattrat+0x1d8/0x280 fs/xattr.c:713<br />
__do_sys_lsetxattr fs/xattr.c:754 [inline]<br />
__se_sys_lsetxattr fs/xattr.c:750 [inline]<br />
__x64_sys_lsetxattr+0xd0/0x150 fs/xattr.c:750<br />
...<br />
<br />
[CAUSE]<br />
The index-header validators only validated INDEX_HDR-level geometry.<br />
They did not walk each NTFS_DE to verify entry alignment, subnode<br />
layout, or that key_size fit inside the entry payload. They also<br />
allowed a last sentinel entry to carry a non-zero key_size.<br />
<br />
[FIX]<br />
Walk every NTFS_DE in ntfs3&#39;s index-header validators and reject<br />
entries with invalid layout, mismatched subnode state, oversized<br />
key_size, or non-zero sentinel keys before lookup or log replay can<br />
consume them.
Impact
Base Score 3.x
7.10
Severity 3.x
HIGH


