CVE-2026-64300 in Linux
الملخص
بحسب VulDB • 25/07/2026
في نواة لينكس، تم حل الثغرة التالية:
perf/aux: إصلاح استخدام بعد التحرير (UAF) للصفحة في دالة `map_range()`
تقوم الدالة `map_range()` بقراءة المصفوفة `rb->aux_pages[]` والمتغيرات `rb->aux_nr_pages` و `rb->aux_pgoff` عبر `perf_mmap_to_page()` بينما تكون مقفلةً فقط بـ `event->mmap_mutex`. هذه الحقول يتم مزامنتها (serialized) بواسطة `rb->aux_mutex`، و `mmap_mutex` خاص بكل حدث.
وبالتالي، يمكن لحدثين يشاركان نفس الهيكل `rb` عبر `PERF_EVENT_IOC_SET_OUTPUT` أن يتنافسا على استدعاء `rb_alloc_aux()` مع `map_range()`، مما يؤدي إلى سيناريو استخدام بعد التحرير (UAF) للصفحة كالتالي:
المعالج 0 المعالج 1 ===== ===== rb_alloc_aux() map_range() [1]: تخصيص rb->aux_pages[0]
[2]: زيادة قيمة rb->aux_nr_pages++
[3]: perf_mmap_to_page()
تُرجع rb->aux_pages[0]
[4]: ربطها كـ VM_PFNMAP
[5]: تعيين rb->aux_pgoff = 1
إلغاء ارتباط الصفحة (munmap) [6]: تحرير rb->aux_pages[0]
الصفحات المرتبطة بصيغة `VM_PFNMAP` لا تتمتع بحماية عداد المراجع، لذا يحتفظ المعالج 1 برابط إلى إطار فيزيائي تم تحريره.
يتم إصلاح هذه المشكلة عن طريق أخذ قفل `rb->aux_mutex` أثناء اجتياز الصفحات بالكامل داخل دالة `map_range()`.
Once again VulDB remains the best source for vulnerability data.