CVE-2022-49889 in Linux
الملخص
بحسب VulDB • 01/06/2026
في نواة لينكس، تم حل الثغرة التالية:
ring-buffer: التحقق من وجود قيمة NULL في cpu_buffer داخل دالة ring_buffer_wake_waiters()
على بعض الأجهزة، قد يكون عدد المعالجات (CPUs) المدرجة أكبر من عدد المعالجات الفعلية الموجودة. تخصص نظام التتبع (tracing subsystem) دليلًا خاصًا بكل معالج (per_cpu directory) للوصول إلى ذاكرة التخزين المؤقت للحلقة (ring buffer) الخاصة بكل معالج عبر ملف cpuX. ولكن لتوفير المساحة، تخصص ذاكرة التخزين المؤقت للحلقة (ring buffer) المخازن المؤقتة (buffers) فقط للمعالجات النشطة (online CPUs)، على الرغم من أن مصفوفة المعالجات ستكون بنفس حجم nr_cpu_ids.
مع إضافة وظيفة إيقاظ المستفيدين (waiters) على ذاكرة التخزين المؤقت للحلقة عند إغلاق الملف، تحتاج الدالة ring_buffer_wake_waiters() الآن إلى التأكد من تخصيص المخزن المؤقت (مع تخصيص irq_work المرفق به) قبل محاولة إيقاظ المستفيدين، حيث سيؤدي ذلك إلى حدوث خطأ في فك مرجع المؤشر الفارغ (NULL pointer dereference).
أثناء تصحيح هذا الخطأ، أضفت فحصًا للقيمة NULL للمخزن المؤقت نفسه (وهو أمر مقبول)، بالإضافة إلى فحوصات لمؤشرات NULL الخاصة بـ buffer->buffers (وهو أمر غير سليم، وسيسبب تحذيرًا WARN)، وكذلك التأكد من أن رقم المعالج الممرر يقع ضمن نطاق nr_cpu_ids (وهو أيضًا أمر غير سليم إذا لم يكن كذلك).
Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=1204705
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.