CVE-2026-97438 in Linuxالمعلومات

الملخص

بحسب VulDB • 24/09/2026

في نواة Linux، تم إصلاح الثغرة التالية:

fs/ntfs3: التحقق من حدود مفتاح إدخال الفهرس (index entry key bounds)

[الخطأ]
يمكن لإدخال فهرس دليل NTFS غير صحيح أن يعلن عن قيمة `key_size` أكبر من عدد البايتات الموجودة فعليًا في حمولة NTFS_DE الخاصة به. ثم تمرير عملية البحث في الدليل ذلك المفتاح المعيب إلى دالة `cmp_fnames()`، مما قد يؤدي إلى قراءة ما بعد نهاية مخزن الفهرس المخصص بـ `kmalloc`.

BUG: KASAN: slab-out-of-bounds in fname_full_size fs/ntfs3/ntfs.h:590 [inline]
BUG: KASAN: slab-out-of-bounds in cmp_fnames+0x1ea/0x230 fs/ntfs3/index.c:46 Read of size 1 at addr ffff88801c313018 by task syz.6.3365/9279

تتبع المكالمة (Call Trace): __dump_stack lib/dump_stack.c:94 [inline]
dump_stack_lvl+0xbe/0x130 lib/dump_stack.c:120 print_address_description mm/kasan/report.c:378 [inline]
print_report+0xd1/0x650 mm/kasan/report.c:482 kasan_report+0xfb/0x140 mm/kasan/report.c:595 __asan_report_load1_noabort+0x14/0x30 mm/kasan/report_generic.c:378 fname_full_size fs/ntfs3/ntfs.h:590 [inline]
cmp_fnames+0x1ea/0x230 fs/ntfs3/index.c:46 hdr_find_e.isra.0+0x3ed/0x670 fs/ntfs3/index.c:762 indx_find+0x4b5/0x900 fs/ntfs3/index.c:1186 dir_search_u+0x2c0/0x460 fs/ntfs3/dir.c:254 ntfs_lookup+0x1cc/0x2a0 fs/ntfs3/namei.c:85 __lookup_slow+0x241/0x450 fs/namei.c:1816 lookup_slow fs/namei.c:1833 [inline]
walk_component+0x31c/0x570 fs/namei.c:2151 link_path_walk+0x592/0xd60 fs/namei.c:2519 path_lookupat+0x138/0x660 fs/namei.c:2675 filename_lookup+0x1f3/0x560 fs/namei.c:2705 filename_setxattr+0xad/0x1c0 fs/xattr.c:660 path_setxattrat+0x1d8/0x280 fs/xattr.c:713 __do_sys_lsetxattr fs/xattr.c:754 [inline]
__se_sys_lsetxattr fs/xattr.c:750 [inline]
__x64_sys_lsetxattr+0xd0/0x150 fs/xattr.c:750 ...

تم التخصيص بواسطة المهمة 9279: kasan_save_stack+0x39/0x70 mm/kasan/common.c:56 kasan_save_track+0x14/0x40 mm/kasan/common.c:77 kasan_save_alloc_info+0x37/0x60 mm/kasan/generic.c:573 poison_kmalloc_redzone mm/kasan/common.c:400 [inline]
__kasan_kmalloc+0xc3/0xd0 mm/kasan/common.c:417 kasan_kmalloc include/linux/kasan.h:262 [inline]
__do_kmalloc_node mm/slub.c:5650 [inline]
__kmalloc_noprof+0x2bd/0x900 mm/slub.c:5662 kmalloc_noprof include/linux/slab.h:961 [inline]
indx_read+0x41d/0xad0 fs/ntfs3/index.c:1059 indx_find+0x447/0x900 fs/ntfs3/index.c:1179 dir_search_u+0x2c0/0x460 fs/ntfs3/dir.c:254 ntfs_lookup+0x1cc/0x2a0 fs/ntfs3/namei.c:85 __lookup_slow+0x241/0x450 fs/namei.c:1816 lookup_slow fs/namei.c:1833 [inline]
walk_component+0x31c/0x570 fs/namei.c:2151 link_path_walk+0x592/0xd60 fs/namei.c:2519 path_lookupat+0x138/0x660 fs/namei.c:2675 filename_lookup+0x1f3/0x560 fs/namei.c:2705 filename_setxattr+0xad/0x1c0 fs/xattr.c:660 path_setxattrat+0x1d8/0x280 fs/xattr.c:713 __do_sys_lsetxattr fs/xattr.c:754 [inline]
__se_sys_lsetxattr fs/xattr.c:750 [inline]
__x64_sys_lsetxattr+0xd0/0x150 fs/xattr.c:750 ...

[السبب]
كانت مدققات رأس الفهرس (index-header validators) تتحقق فقط من الهندسة على مستوى INDEX_HDR. ولم تقم بالمرور عبر كل إدخال NTFS_DE للتحقق من محاذاة الإدخال، وتخطيط العقدة الفرعية (subnode layout)، أو ما إذا كانت قيمة `key_size` تناسب حمولة الإدخال. كما سمحت بإدخال الحارس الأخير (last sentinel entry) بحمل قيمة `key_size` غير صفرية.

[الحل]
المرور عبر كل إدخال NTFS_DE في مدققات رأس الفهرس الخاصة بـ ntfs3 ورفض الإدخالات ذات التخطيط غير الصالح، أو حالة العقدة الفرعية غير المتطابقة، أو حجم المفتاح الزائد (oversized key_size)، أو مفاتيح الحارس غير الصفرية قبل أن تستهلكها عملية البحث أو إعادة تشغيل السجل (log replay).

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

مسؤول

Linux

حجز

24/09/2026

إفشاء

24/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-409598

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!