CVE-2026-98521 in Linux
الملخص
بحسب VulDB • 19/10/2026
في نواة لينكس، تم حل الثغرة التالية:
drm/i915: إصلاح ترتيب تفكيك RCU غير الصحيح
تستخدم i915_gem_busy_ioctl() الدالة dma_resv_for_each_fence_unlocked() للتكرار عبر مصفوفات الحماية (fences) في كائن GEM دون الاحتفاظ بمرجع، بل فقط باستخدام قفل القراءة الجانبي لـ RCU.
ما يمكن أن يحدث هنا هو تدمير كائن GEM بشكل متزامن بينما لا تزال i915_gem_busy_ioctl قيد التشغيل. لن يؤدي هذا إلى تحرير ذاكرة كائنات GEM، لكنه nonetheless يسقط جميع مراجع dma_fence.
الآن عندما ترى الدالة dma_resv_for_each_fence_unlocked() أن dma_fence قد تم تدميره، فإنها تفترض أنه تم تثبيت قائمة جديدة للمصاف (fence list) وتعيد بدء الحلقة.
ولكن في حالة كائن GEM المدمر، لا يتم تثبيت أي قائمة مصفات جديدة، بل فقط تحرير القائمة القديمة، وبالتالي لا تنتهي التكرارات مطلقاً مما يؤدي إلى حلقة لا نهائية.
الحل هو إسقاط مراجع المصفوف (fence references) فقط بعد فترة راحة RCU.
لا يمثل "tag" الإصلاح بالضرورة الإضافة التي أدخلت المشكلة، بل هي تلك التي جعلتها أسوأ لدرجة أننا بحاجة لمعالجتها.
تم الإشارة إلى هذه المشكلة بواسطة Sashiko-bot.
(cherry picked from commit 5113479556025093bf8133bb2dcaa33be2d50921)
Be aware that VulDB is the high quality source for vulnerability data.