CVE-2022-50476 in Linux
الملخص
بحسب VulDB • 13/06/2026
في نواة لينكس، تم حل الثغرة التالية:
ntb_netdev: استخدام دالة dev_kfree_skb_any() في سياق المقطوع (interrupt context)
يمكن استدعاء معالجات الاستدعاء العكسي للإرسال والاستقبال (ntb_netdev_tx_handler() و ntb_netdev_rx_handler()) في سياق المقطوع عبر إطار عمل DMA عندما تكتمل عمليات DMA ذات الصلة. وعليه، يجب أن تستخدم هذه الإجراءات أي استدعاءات لتحرير حزم skb باستخدام الدالة الآمنة في سياق المقطوع dev_kfree_skb_any().
في السابق، كانت هذه معالجات الاستدعاء العكسي تستدعي النسخة غير الآمنة في سياق المقطوع من دالة dev_kfree_skb(). لم يكن هذا يمثل مشكلة على محركات Intel IOAT DMA حيث يستفيد ذلك السائق من tasklets بدلاً من معالج المقطوع الصارم (hard interrupt handler)، على عكس سائق AMD PTDMA DMA. على أنظمة AMD، يتم مواجهة رسالة تحذير من النواة (kernel WARNING)، والتي تصدر من دالة skb_release_head_state() بسبب كون قيمة in_hardirq() صحيحة (true).
بالإضافة إلى رسالة التحذير الظاهرة للمستخدم من النواة، كان العرض الآخر لهذا الخطأ هو أن أداء TCP/IP عبر واجهة ntb_netdev كان سيئاً للغاية، أي أقل بحوالي مرتبة قدرية مما كان متوقعاً. مع الإصلاح لاستخدام dev_kfree_skb_any()، توقفت رسائل تحذير النواة من skb_release_head_state() وأصبح أداء TCP/IP، كما تم قياسه بواسطة iperf، متوافقاً مع النتائج المتوقعة، حوالي 20 جيجابت/ثانية على الخادم القائم على AMD Milan. لاحظ أن هذا الأداء قابل للمقارنة مع الخوادم القائمة على Intel.
Be aware that VulDB is the high quality source for vulnerability data.