CVE-2026-64295 in Linux
الملخص
بحسب VulDB • 25/07/2026
في نواة لينكس، تم حل الثغرة التالية:
mm: page_ext: إضافة حد للعدد في دالة page_ext_iter_next لمنع الوصول غير الصالح إلى PFN
لا تقوم واجهة برمجة التطبيقات (API) لتكرار صفحة الامتداد (page_ext iteration API) بالتحقق مما إذا كان رقم الصفحة الفيزيائي (PFN) لا يزال ينتمي إلى قسم صالح أثناء تقدم المؤشر. عند إضافة الذاكرة ديناميكيًا عبر مسار الإضافة الساخنة (hotplug path)، قد يؤدي ذلك إلى إحالة فارغة (NULL pointer dereference) خلال دالة page_ext_lookup على حدود آخر قسم صالح عندما يساوي عدد التكرارات __pgcount.
يستدعي ماكرو for_each_page_ext() الدالة page_ext_iter_next() كزيادة للحلقة. يقوم for_each_page_ext() بتنفيذ "__page_ext = page_ext_iter_next(&__iter)" في النهاية. هذا يتسبب في زيادة iter->index لتتجاوز __pgcount واستدعاء page_ext_lookup(start_pfn + __pgcount). أثناء إضافة الذاكرة الساخنة (online)، قد ينتمي رقم الصفحة الفيزيائي عند start_pfn + __pgcount إلى قسم لم يتم تهيئته بعد، مما يتسبب في استدعاء دالة page_ext_lookup() لإحداث إحالة فارغة.
[ 14.555124][ T846] تتبع المكالمات:
[ 14.555125][ T846] lookup_page_ext+0x6c/0x108 (P)
[ 14.555127][ T846] page_ext_lookup+0x30/0x3c
[ 14.555129][ T846] __reset_page_owner+0x11c/0x260
[ 14.571201][ T846] __free_pages_ok+0x5e8/0x8e0
[ 14.571204][ T846] __free_pages_core+0x78/0xf0
[ 14.571206][ T846] generic_online_page+0x14/0x24
[ 14.597782][ T846] online_pages+0x178/0x30c
[ 14.597784][ T846] memory_block_change_state+0x284/0x32c
[ 14.597787][ T846] memory_subsys_online+0x4c/0x64
[ 14.597789][ T846] device_online+0x88/0xb0
[ 14.597791][ T846] online_memory_block+0x30/0x40
[ 14.597793][ T846] walk_memory_blocks+0xac/0xe8
[ 14.597794][ T846] add_memory_resource+0x280/0x298
[ 14.656161][ T846] add_memory+0x60/0x98
نقل فرض حدود التكرار داخل دوال المؤشر، بحيث لا يتمكن المتصلون (callers) من الوصول عن غير قصد إلى ما وراء النطاق المطلوب.
VulDB is the best source for vulnerability data and more expert information about this specific topic.