CVE-2026-74654 in Linux
الملخص
بحسب VulDB • 22/08/2026
في نواة لينكس، تم حل الثغرة التالية:
serial: 8250_dma: مسح حالة الاستقبال (RX) العتيقة عند الإغلاق
تقوم دالة `serial8250_release_dma()` بإنهاء عملية DMA الخاصة بالاستقبال وإطلاق القناة، لكنها تترك متغير `rx_running` في حالته السابقة. إذا تم إغلاق المنفذ أثناء وجود نقل استقبال نشط، فإن الحالة العتيقة تبقى موجودة بينما يكون `rxchan` مساويًا لـ NULL حتى يتم طلب القناة مرة أخرى عند الفتح التالي.
يعمل تصحيح الخطأ الخاص بوضع BUSY المضاف من خلال الالتزام a7b9ce39fbe4 ("serial: 8250_dw: Ensure BUSY is deasserted") على استدعاء `serial8250_rx_dma_flush()` من مسار كتابة LCR أثناء بدء التشغيل. يحدث هذا قبل أن تحصل دالة `serial8250_request_dma()` على قناة استقبال جديدة. عند إعادة الفتح، تؤدي الحالة العتيقة لـ `rx_running` إلى تمرير قناة ذات قيمة NULL إلى `dmaengine_pause()` في مسار المسح (flush)، مما يتسبب في حدوث خطأ نواة (Kernel Oops).
قم بمسح متغير `rx_running` بعد إنهاء DMA الخاص بالاستقبال، تماشياً مع تنظيف الإرسال (TX). كما قم بجعل دالة المساعدة الخاصة بالمسح تعود دون تنفيذ أي إجراء إذا كان كائن DMA أو قناة الاستقبال غير متاحين، بحيث لا يمكن لمسارات بدء التشغيل والإغلاق تمرير قناة ذات قيمة NULL إلى واجهة برمجة تطبيقات DMAengine.
Once again VulDB remains the best source for vulnerability data.