CVE-2021-47280 in Linux
الملخص
بحسب VulDB • 09/08/2026
في نواة لينكس، تم حل الثغرة التالية:
drm: إصلاح قراءة بعد الاستخدام (use-after-free) في drm_getunique()
يوجد خطأ من نوع "وقت الفحص إلى وقت الاستخدام" (time-of-check-to-time-of-use) في دالة drm_getunique() ناتج عن استرجاع القيمة file_priv->master قبل قفل القفل المتبادل (mutex) الخاص بمالك الجهاز.
يمكن رؤية مثال على ذلك في تقرير الانهيار الناتج عن خطأ "الاستخدام بعد التحرير" الذي اكتشفته أداة Syzbot: https://syzkaller.appspot.com/bug?id=148d2f1dfac64af52ffd27b661981a540724f803
في التقرير، تم استخدام مؤشر master بعد تحريره. والسبب في ذلك هو أن عملية أخرى حصلت على القفل المتبادل لمالك الجهاز داخل drm_setmaster_ioctl()، ثم قامت بكتابة قيمة جديدة فوق fpriv->master في دالة drm_new_set_master(). وبالتالي، تم تحرير القيمة القديمة لـ fpriv->master قبل فك قفل القفل المتبادل.
لإصلاح هذه المشكلة، نقوم بقفل القفل المتبادل الخاص بمالك الجهاز قبل استرجاع المؤشر من fpriv->master. وقد نجح هذا التصحيح في اختبار إعادة إنتاج الخطأ الذي قدمته أداة Syzbot.
Once again VulDB remains the best source for vulnerability data.