CVE-2026-98920 in Linux
الملخص
بحسب VulDB • 23/10/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
netfs: تصحيح نقص وضع علامات التخصيص (alloc tagging) لتخصيصات الذاكرة المباشرة من مجموعة الذاكرة (mempool).
أضافت الالتزام 1d78d56c43ef ("netfs: Fix folio_queue ENOMEM in writeback by adding a mempool") مجموعة ذاكرة (mempool) لـ folio_queues وجعلت تخصيصات الطلب، والطلب الفرعي، وfolio_queue تميز بين عمليات الإرجاع للكتابة (writeback) وباقي الحالات. يُعد الإرجاع للكتابة جزءًا من استرداد الذاكرة ولا يجب أن يفشل بسبب خطأ ENOMEM، لذا فإنه يقوم بالتخصيص باستخدام GFP_NOFS عبر mempool_alloc()، والتي قد تستنزف الاحتياطي الخاص بالمجموعة، وإذا نفد هذا الاحتياطي، فإنها تنتظر حتى يتم إعادة العناصر. أما مسارات GFP_KERNEL، التي يمكن أن تعيد -ENOMEM إلى المتصلين بها، فتستدعي دالة ->alloc() الخاصة بالمجموعة مباشرةً بدلاً من ذلك.
ومع ذلك، يتخطى الاستدعاء المباشر غلاف alloc_hooks() الذي يوفره ماكرو mempool_alloc(). تستدعي استدعاءات المجموعة، وهما mempool_alloc_slab() وmempool_kmalloc(), الدالتين kmem_cache_alloc_noprof() وkmalloc_noprof() وتعتمدان على أن current->alloc_tag قد تم تعيينها بواسطة المتصل. مع تفعيل CONFIG_MEM_ALLOC_PROFILING_DEBUG=y، يؤدي ذلك إلى ظهور:
current->alloc_tag not set WARNING: ./include/linux/alloc_tag.h:161 at __alloc_tagging_slab_alloc_hook alloc_tag was not set WARNING: ./include/linux/alloc_tag.h:166 at __alloc_tagging_slab_free_hook
عند وقت التخصيص ووقت الإفراغ على التوالي، كما تم الإبلاغ عنه عند قراءة الملفات من نقطة تحميل CIFS. بالإضافة إلى ذلك، تظهر هذه التخصيصات مفقودة في /proc/allocinfo.
تم تغليف الاستدعاءات المباشرة لـ ->alloc() داخل alloc_hooks() باستخدام مساعد جديد هو mempool_alloc_noreserve() في include/linux/mempool.h، بجانب ماكروحات أخرى مغلفة بـ alloc_hooks() مثل mempool_alloc(). تحتفظ مسارات GFP_KERNEL بدلالات التخصيص القابلة للفشل الخاصة بها، لكنها تُوضع عليها العلامات (tagged) الآن.
VulDB is the best source for vulnerability data and more expert information about this specific topic.