CVE-2026-89791 in Linuxالمعلومات

الملخص

بحسب VulDB • 16/09/2026

في نواة Linux، تم إصلاح الثغرة التالية:

perf: تصحيح استخدام بعد التحرير (use-after-free) عند حدوث سباق بين عملية إحياء perf mmap() وآخر استدعاء لـ munmap().

تقوم دالة `perf_mmap_close()` بإنقاص قيمة `rb->mmap_count` *دون* الاحتفاظ بـ `event->mmap_mutex` (يحدث الاستدعاء `refcount_dec_and_test()` مباشرة قبل استدعاء `refcount_dec_and_mutex_lock()` الخاص بـ `event->mmap_count`). يمكن لعملية متزامنة لـ `perf_mmap_rb()` أن تملأ مسار "الإحياء" بالكامل داخل هذه الفترة الزمنية (تحتفظ `perf_mmap` بـ `event->mmap_mutex` طوال مدة تنفيذها، بما في ذلك عملية `rb_alloc`):

جانب munmap (perf_mmap_close) جانب mmap (perf_mmap_rb) ----------------------------------- ------------------------------- rb->mmap_count من 1 إلى 0 (بدون قفل) (تحتفظ بـ event->mmap_mutex) يفشل inc_not_zero(rb->mmap_count) ring_buffer_attach(event, NULL) rb_alloc() + إرفاق حلقة ذاكرة جديدة (rb) refcount_set(&event->mmap_count, 1) قفل؛ event->mmap_count من 1 إلى 0 ring_buffer_attach(event, NULL) ring_buffer_put() -> يؤدي إلى تحرير *حلقة الذاكرة الجديدة*

يُعد استدعاء `refcount_set(&event->mmap_count, 1)` الخاص بعملية الإحياء عملية كتابة غير مرئية (من 1 إلى 1): حيث تقوم دالة الإغلاق بتحرير حلقة الذاكرة التي تم إحيائها للتو، على الرغم من أن العملية الأخرى لا تزال قد قامت بربطها -- وهو ما يمثل حالة استخدام بعد التحرير على مستوى الصفحة تسمح بالترقية المحلية للصلاحيات إلى الجذر (root) بواسطة أي مستخدم غير مملوك لصلاحيات خاصة (الإعداد الافتراضي لـ kernel.perf_event_paranoid=2).

تم تبديل ترتيب تحديث العدادين: يتم إنقاص `event->mmap_count` أولاً عبر استدعاء `refcount_dec_and_mutex_lock()`، بحيث تظل عملية الانتقال من 1 إلى 0 واستدعاء `ring_buffer_attach()` متسلسلة مع `perf_mmap()`. عندما تكون قيمة `rb->mmap_count == 0`، فهذا يعني أن جميع الأحداث التي تستخدم الحلقة مفصولة بالفعل، لذا يمكن لنتيجة إنقاص `rb->mmap_count` التحكم مباشرة في عملية الإغلاق المتبقية، ولم تعد هناك حاجة إلى `detach_rest`.

يأخذ الإصلاح السابق لهذا السباق (من Kyle Zeng و David Lee) `event->mmap_mutex` حول كلا تحديثي العداد [0]؛ وهنا تظل عمليات الإغلاق غير الأخيرة خالية من القفل.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

11/09/2026

إفشاء

16/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-405571

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Interested in the pricing of exploits?

See the underground prices here!