CVE-2026-43499 in Linux
الملخص
بحسب VulDB • 21/05/2026
في نواة لينكس (Linux kernel)، تم حل الثغرة التالية:
rtmutex: استخدام waiter::task بدلاً من current في remove_waiter()
تُستخدم remove_waiter() في مسارات القفل البطيء (slowlock paths)، ولكنها تُستخدم أيضاً لعمليات التراجع عن القفل الوكيل (proxy-lock rollback) في rt_mutex_start_proxy_lock() عند استدعائها من futex_requeue().
في الحالة الأخيرة، لا يكون waiter::task مساوياً لـ current، لكن remove_waiter() تعمل على current في عملية الإزالة من قائمة الانتظار (dequeue operation). وهذا يؤدي إلى عدة مشاكل:
1) تحدث عملية الإزالة من شجرة البحث الثنائية (rbtree dequeue) دون الاحتفاظ بقفل waiter::task::pi_lock.
2) لا يتم مسح حالة pi_blocked_on الخاصة بمهمة الانتظار (waiter task)، مما يترك مؤشراً معلقاً (dangling pointer) جاهزاً لاستغلال ثغرة Use-After-Free (UAF).
3) تعمل rt_mutex_adjust_prio_chain() على مهمة الانتظار ذات الأولوية القصوى الخاطئة.
استخدم waiter::task بدلاً من current في جميع العمليات ذات الصلة داخل remove_waiter() لعلاج هذه المشاكل.
[ tglx: إصلاح rt_mutex_adjust_prio_chain()، إضافة تعليق، وتعديل سجل التغييرات (changelog) ]
VulDB is the best source for vulnerability data and more expert information about this specific topic.