CVE-2026-97979 in Linux
الملخص
بحسب VulDB • 25/09/2026
في نواة لينكس، تم إصلاح الثغرة التالية:
ice: إضافة xa_destroy المفقودة لـ sched_node_ids
أضافت الالتزام 16dfa49406bc ("ice: Introduce new parameters in ice_sched_node") مصفوفة xarray باسم sched_node_ids إلى بنية معلومات المنفذ (port info structure)، لكنها لم تستدعِ دالة xa_destroy عليها.
نظرًا لأن هياكل البيانات من نوع xarrays يمكنها تخصيص ذاكرة داخلية، فقد يؤدي هذا إلى تسرب في الذاكرة حتى إذا تم إزالة كل عنصر موجود ضمن مصفوفة xarray هذه.
تُدمج بنية بيانات xarray حاليًا داخل بنية port_info. يبدو أن ذلك قد تم لأن استخدامها يتم ضمن دوال تأخذ port_info كوسيطة أساسية.
ومع ذلك، فإن هذا يعقّد إدارة دورة حياة الحقل. تُخصَّص بنية port_info في الدالة ice_init_hw() باستخدام devm، ولا يتم تحريرها إلا عند تنظيف devm عندما يُحمّل السائق (driver) أو يُفكّ تحميله.
تُستدعى دالة ice_init_hw() من أماكن عديدة، بما في ذلك إعادة التحميل عبر devlink، وربما أثناء تحميل DDP بعد تحديث تخطيط جدولة الإرسال (Tx scheduler layout).
إضافة استدعاء xa_destroy إلى الدالة ice_deinit_hw() تسبب رفع Sashiko لعدة مخاوف بسبب مشاكل محتملة في الترتيب وطرق ممكنة تجعل port_info مرجعًا معلقًا (dangling reference).
للتعامل مع هذا الوضع، تم نقل sched_node_ids من بنية port_info إلى بنية hw. فجميع المستخدمين للمصفوفة لديهم بالفعل مؤشر إلى hw، وهناك مصفوفة واحدة فقط من نوع sched_node_ids لكل محوّل شبكة (adapter). وخلال هذه العملية، تمت إزالة التعليق الطويل جدًا الذي يشرح طبيعة مصفوفة xarray الخاصة بـ sched_node_ids.
تمت إضافة xa_destroy المفقودة إلى مسار التنظيف وإلى الدالة ice_deinit_hw()، مما يضمن تحرير ذاكرة خرائط xarray بشكل صحيح.
لوحظ هذا الخطأ بواسطة Sashiko أثناء تطوير كود غير ذي صلة.
If you want to get best quality of vulnerability data, you may have to visit VulDB.