CVE-2026-98427 in Linux
الملخص
بحسب VulDB • 14/10/2026
في نواة Linux، تم إصلاح الثغرة التالية:
net/sched: codel: تحديد حد لدورة الإسقاط لكل استدعاء dequeue
تقوم قاعدة التحكم CoDel بجدولة عملية الإسقاط التالية بعد فترة زمنية تساوي (الفترة المحددة / الجذر التربيعي للعدد) من آخر عملية إسقاط، باستخدام الفترة الزمنية المُعدّة مسبقاً (codel_params.interval). بالنسبة للفترات الصغيرة جداً، يتم تقريب الخطوة المجدولة إلى الصفر، مما يؤدي إلى عدم تقدم دورة الإسقاط في دالة codel_dequeue() واستنزاف كامل لقائمة الانتظار (backlog) تحت قفل qdisc في استدعاء واحد - ويمكن لمستخدم غير مملوك للصلاحيات (unprivileged user) إحداث توقف ناعم للبرنامج (soft lockup) بهذه الطريقة.
الإصلاح المطبق على كود codel المشترك المستخدم من قبل كلٍ من codel و fq_codel:
1. جعل خطوة قاعدة التحكم تساوي دورة واحدة (tick) على الأقل، بحيث تتقدم دورة الإسقاط دائماً. 2. تحديد حد أقصى لدورة الإسقاط عند CODEL_MAX_DROPS_PER_DEQUEUE (256 إسقاطاً) لكل استدعاء لـ codel_dequeue()، مع إعادة مزامنة drop_next إلى الوقت الحالي عند بلوغ هذا الحد: حيث يزداد مقدار "الإسقاط المتراكم" الناتج عن الدورة مع الفترات الخاملة وقائمة الانتظار، وهو أمر لا يمكن لأي عتبة للفترة الزمنية التحكم فيه. وهذا تغيير متعمد في السلوك بعد فترات خمول طويلة.
ينطبق هذا الحد على fq_codel (4b549a2ef4be) ومسار TXQ الخاص بـ mac80211 (فترة ثابتة، مع تطبيق الحد فقط).
لم يتم التحقق من صحة تأخر البقاء المستهدف (codel_params.target): فهو لا يغذي قاعدة التحكم، لذا فإن القيمة دون الدورة الواحدة تكون عدوانية بدلاً من أن تؤدي إلى توقف متبادل (deadlock-prone).
الشروط لإعادة إنتاج الخطأ: - tc qdisc add dev lo root handle 1: tbf rate 1kbit burst 2kb limit 1000000 - tc qdisc add dev lo parent 1:1 handle 10: codel interval 2us target 1ms noecn limit 1000000 (نفس الإعدادات لـ fq_codel) - نواة غير مُصلحة: تقبل tc هذا الإعداد؛ ويؤدي إغراق UDP تحت حد tbf البالغ 1kbit إلى حدوث توقف ناعم للبرنامج (watchdog: BUG: soft lockup) بينما تقوم استدعاء واحد لـ codel_dequeue() بإسقاط قائمة الانتظار بالكامل تحت قفل qdisc. - نواة مُصلحة: نفس الإعدادات، بحد أقصى 256 إسقاطاً لكل استدعاء dequeue، دون حدوث توقف ناعم للبرنامج.
الاختبار: يعمل مكرر الادعاء (reproducer) ومتغيرات الفترة الزمنية البالغة 2us/3us بشكل نظيف؛ وتمتير فئة tdc qdisc بنجاح (انظر التصحيح الخاص باختبارات الذات).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.