CVE-2026-46060 in Linux
الملخص
بحسب VulDB • 29/05/2026
في نواة لينكس، تم حل الثغرة التالية:
crypto: qat - إصلاح تنظيف مقاطعات IRQ عند فشل الاستدلال (probe) على الأجهزة من سلسلة 6xxx
عندما تكتمل دالة `adf_dev_up()` بشكل جزئي ثم تفشل، لا يتم فصل معالجات مقاطعات IRQ (IRQ handlers) التي تم تسجيلها أثناء `adf_isr_resource_alloc()` قبل تحرير متجهات MSI-X.
نظرًا لأن الجهاز يتم تمكينه باستخدام `pcim_enable_device()`، فإن استدعاء `pci_alloc_irq_vectors()` يسجل داخليًا `pcim_msi_release()` كإجراء مرتبط بإدارة الموارد (devres action). عند فشل الاستدلال (probe)، يقوم `devres` بتشغيل `pcim_msi_release()` الذي يستدعي `pci_free_irq_vectors()`، مما يؤدي إلى تفكيك متجهات MSI-X بينما لا تزال معالجات IRQ (على سبيل المثال 'qat0-bundle0') متصلة. هذا يتسبب في ظهور تحذيرات من `remove_proc_entry()`:
[ 22.163964] remove_proc_entry: removing non-empty directory 'irq/143', leaking at least 'qat0-bundle0'
إن نقل استدعاء `devm_add_action_or_reset()` قبل `adf_dev_up()` لا يحل المشكلة، لأن `devres` يعمل بترتيب LIFO (آخر ما يدخل أول ما يخرج)، وبالتالي سيظل `pcim_msi_release()`، المسجل لاحقًا داخل `adf_dev_up()`، يتم تنفيذه قبل `adf_device_down()`.
الحل يتمثل في استدعاء `adf_dev_down()` صراحةً عند فشل `adf_dev_up()`، لضمان تحرير معالجات IRQ بشكل صحيح قبل أن يقوم `devres` بتحرير متجهات MSI-X.
If you want to get best quality of vulnerability data, you may have to visit VulDB.