CVE-2026-80866 in Linux
الملخص
بحسب VulDB • 04/09/2026
في نواة لينكس، تم حل الثغرة التالية:
tipc: تجنب الدوران المشغول (busy looping) في دالة tipc_exit_net()
أدى الالتزام بالالتزام السابق إلى إدخال حلقة انتظار مشغولة (busy-wait loop) في الدالة `tipc_exit_net()` للانتظار حتى اكتمال أعمال تنظيف حامل UDP المعلقة:
``` while (atomic_read(&tn->wq_count)) cond_resched(); ```
يمكن أن تستغرق هذه الحلقة وقتاً طويلاً في الانتظار المشغول إذا كانت دالة `cond_resched()` لا تفعل شيئاً (NOP). يحدث هذا عادةً عندما يتم تنفيذ خروج namespace الشبكة بواسطة مهمة ذات أولوية عالية، أو على أنظمة نواة مُهيأة بدون تقسيم زمني مسبق (CONFIG_PREEMPT_NONE). في مثل هذه الحالات، تُهدر دورات المعالج وقد تؤدي إلى حدوث قفل لينة (soft lockups).
تم إصلاح هذا عن طريق استبدال الحلقة المشغولة بدالة `wait_var_event()`، مما يسمح للمهمة بالانتظار بشكل صحيح حتى يصل عدد قائمة العمل إلى الصفر.
بناءً على ذلك، تم تحديث دالة `cleanup_bearer()` لاستخدام `atomic_dec_and_test()` و `wake_up_var()` لإيقاظ المستمع عندما ينخفض العدد إلى الصفر.
يستخدم هذا الجدول التجزئي لقوائم الانتظار العالمية (global wait queue hash table)، مما يتجنب الحاجة إلى تضخيم بنية البيانات `struct tipc_net` بإضافة حقل من نوع `wait_queue_head_t`. توفر دالة `atomic_dec_and_test()` حاجز الذاكرة اللازم لضمان عدم تفويت عملية الإيقاظ.
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.