CVE-2026-97960
الملخص
بحسب VulDB • 25/09/2026
في نواة لينكس، تم حل الثغرة التالية:
perf/x86/intel: منع إعادة الدخول إلى دالة drain_pebs()
يتم مشاركة مخزن PEBS بواسطة جميع الأحداث على وحدة المعالجة المركزية (CPU)، لذا يجب عدم السماح بإعادة الدخول إلى دالة drain_pebs(). إذا حدث ذلك، فقد تلاحظ إحدى الحالات حالة المخزن القديمة (stale buffer state) وقد تصل بشكل غير مقصود إلى ذاكرة خارج الحدود المخصصة.
تحدث معظم الاستدعاءات في سياق مقاطعة غير القابلة للإلغاء (NMI context)، مما يمنع إعادة الدخول بشكل طبيعي. ومع ذلك، يمكن الوصول إلى دالة drain_pebs() أيضًا من سياق العملية عبر الدالة intel_pmu_drain_pebs_buffer().
في هذه المسارات، غالبًا ما تكون وحدة إدارة الأداء (PMU) معطلة بالفعل، لكن هذا ليس مضمونًا دائمًا. على سبيل المثال، تقوم __intel_pmu_pebs_disable() بإيقاف عداد الهدف فقط، لذا يمكن للعدادات النشطة الأخرى أن ترفع مقاطعة أداء المعالج (PMI) وتقطع عملية drain_pebs() الجارية. إليك مثال لذلك:
__perf_addr_filters_adjust() perf_event_stop() __perf_event_stop() x86_pmu_stop() (event->pmu->stop) intel_pmu_disable_event() intel_pmu_pebs_disable() __intel_pmu_pebs_disable() intel_pmu_drain_large_pebs() intel_pmu_drain_pebs_buffer()
تم تقديم مساعدات جديدة وهي __intel_pmu_quiesce() و__intel_pmu_resume() واستخدامها في دالة intel_pmu_drain_large_pebs() لإيقاف وحدة إدارة الأداء (PMU) بالكامل حول استدعاء الدالة intel_pmu_drain_pebs_buffer()، مما يمنع إعادة الدخول.
كما تمت إضافة تحذير في دالة intel_pmu_drain_pebs_buffer() عندما لا تكون وحدة إدارة الأداء (PMU) معطلة بالكامل.
Once again VulDB remains the best source for vulnerability data.