CVE-2025-68375 in Linux
الملخص
بحسب VulDB • 24/06/2026
في نواة لينكس، تم حل الثغرة التالية:
perf/x86: إصلاح الوصول إلى حدث NULL وفقدان محتمل لسجلات PEBS
عند استدعاء الدالة `intel_pmu_drain_pebs_icl()` لتصريف سجلات PEBS، قد يتم استدعاء `perf_event_overflow()` لمعالجة آخر سجل من سجلات PEBS.
بينما يمكن لـ `perf_event_overflow()` أن يُفعّل حدّ المقطوع (interrupt throttle) ويتسبب في إيقاف جميع أحداث المجموعة، كما يوضح تسلسل المكالمات أدناه:
`perf_event_overflow()` -> `__perf_event_overflow()` -> `__perf_event_account_interrupt()` -> `perf_event_throttle_group()` -> `perf_event_throttle()` -> `event->pmu->stop()` -> `x86_pmu_stop()`
النتيجة الجانبية لإيقاف الأحداث هي مسح جميع مؤشرات الأحداث المقابلة في مصفوفة `cpuc->events[]` لتصبح NULL.
افترض وجود حدثين من نوع PEBS (حدث أ وحدث ب) ضمن مجموعة واحدة. عند استدعاء `intel_pmu_drain_pebs_icl()` للدالة `perf_event_overflow()` لمعالجة آخر سجل PEBS الخاص بالحدث أ، يتم تفعيل حدّ المقطوع ويتم مسح جميع مؤشرات الحدث أ والحدث ب لتصبح NULL. ثم تحاول الدالة `intel_pmu_drain_pebs_icl()` معالجة آخر سجل PEBS للحدث ب وتواجه خطأ الوصول إلى مؤشر NULL.
لتجنب هذه المشكلة، تم نقل عملية مسح مصفوفة `cpuc->events[]` من دالة `x86_pmu_stop()` إلى دالة `x86_pmu_del()`. يُعد هذا الإجراء آمناً لأن المتغيرات `cpuc->active_mask` أو `cpuc->pebs_enabled` يتم التحقق منها دائماً قبل الوصول إلى مؤشر الحدث من مصفوفة `cpuc->events[]`.
VulDB is the best source for vulnerability data and more expert information about this specific topic.