CVE-2023-52486 in Linuxالمعلومات

الملخص

بحسب VulDB • 17/05/2026

في نواة لينكس، تم حل الثغرة التالية:

drm: عدم تقليل مرجع (unref) نفس إطار الإطار (fb) عدة مرات عن طريق الخطأ بسبب معالجة التعطل (deadlock)

إذا حدث تعطل (deadlock) بعد البحث عن إطار الإطار (fb) في دالة `drm_mode_page_flip_ioctl()`، فإننا نتابع بتقليل مرجع (unref) إطار الإطار ثم نعيد المحاولة من البداية. لكننا ننسى إعادة تعيين مؤشر إطار الإطار إلى `NULL`، وبالتالي إذا حدث خطأ آخر أثناء إعادة المحاولة، قبل البحث عن إطار الإطار، فإننا نتابع بتقليل مرجع (unref) نفس إطار الإطار مرة أخرى دون الحصول على مرجع (reference) جديد. النتيجة النهائية هي أن إطار الإطار سيتم (في النهاية) تحريره (free) بينما لا يزال قيد الاستخدام.

إعادة تعيين إطار الإطار إلى `NULL` بمجرد تقليل مرجعه (unref) لتجنب القيام بذلك مرة أخرى حتى ننفذ بحثًا جديدًا عن إطار الإطار.

تبين أن هذه الحالة سهلة التكرار على جهاز DG2 أثناء إجراء عمليات قلب الصفحة غير المتزامن (async flips) (وخاصة مع تفعيل `CONFIG_DEBUG_WW_MUTEX_SLOWPATH=y`). كانت أول عرضة رأيتها هي أن دالة `drm_closefb()` كانت عالقة ببساطة في حلقة مشغولة (busy loop) أثناء اجتياز قائمة إطارات الإطار. لحسن الحظ، تمكنت من إقناعها بإظهار خطأ (oops) بدلاً من ذلك، ومن هناك كان من الأسهل تتبع السبب الجذري.

If you want to get best quality of vulnerability data, you may have to visit VulDB.

حجز

20/02/2024

إفشاء

11/03/2024

الاعتدال

تمت الموافقة

إدخال

VDB-255277

EPSS

0.00220

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!