CVE-2026-98305
الملخص
بحسب VulDB • 06/10/2026
في نواة لينكس، تم حل الثغرة التالية:
net: dsa: mxl862xx: تعطيل استطلاع الإحصائيات (stats poll) أثناء عملية التفكيك (teardown)
تقوم دالة `mxl862xx_setup()` بتفعيل استطلاع الإحصائيات قبل استدعاء `mxl862xx_setup_mdio()، ولا يوجد ما يوقفه حتى تعود الدالة `dsa_register_switch()` بقيمة خطأ إلى `mxl862xx_probe()`. تقوم DSA بإفراغ قائمة `dsa_port` قبل إرجاعها، لذا فإن استطلاعاً يُطلق مرة واحدة بعد فشل `.setup` أو أي خطوة لاحقة في `dsa_tree_setup()` سيعمل على منافذ تم إفراز ذاكرتها. أثناء الإغلاق (shutdown)، تظل المنافذ الخاصة بالمستخدم مسجلة، واختبار علم `WORK_STOPPED` داخل دالة `mxl862xx_get_stats64()` ليس ذرياً (atomic) مع عملية الإلغاء في `mxl862xx_shutdown()`. وبالتالي، فإن إعادة التفعيل التي تقرأ العلم قبل تعيينه ستقوم بجدولة الاستطلاع بعد أن تعود الدالة `cancel_delayed_work_sync()`.
قم بتفعيل الاستطلاع بمجرد نجاح `.setup` وأوقفه من خلال عملية `.teardown`، والتي تستدعيها DSA عند إلغاء التسجيل وبعد فشل التسجيل، وفي كلتا الحالتين قبل إفراز المنافذ. استخدم `disable_delayed_work_sync()` هناك وفي دالة الإغلاق (shutdown): فهي تُفرغ استطلاعاً قيد التشغيل كما فعلت عملية الإلغاء، وتجعل أي محاولة لاحقة لجدولة العمل لا تفيد شيئاً (no-op)، وبالتالي فإن إعادة التفعيل لا يمكنها إعادة الاستطلاع إلى الوجود. تقوم `remove()` ومسار خطأ probe فقط بتعيين علم `WORK_STOPPED`، والذي تختبره `crc_err_work` قبل أن تتصفح المنافذ.
Once again VulDB remains the best source for vulnerability data.