CVE-2026-43459 in Linux
الملخص
بحسب VulDB • 11/05/2026
في نواة لينكس، تم حل الثغرة التالية:
ASoC: soc-core: إفراغ المهام المؤجلة قبل إزالة وحدات DAIs وwidgets
عند فك ارتباط بطاقة صوت (sound card) أثناء بقاء تدفق PCM مفتوحًا، قد يحدث خطأ استخدام بعد التحرير (use-after-free) في الدالة `snd_soc_dapm_stream_event()`، والتي يتم استدعاؤها من معالج قائمة انتظار العمل `close_delayed_work`.
أثناء عملية فك الارتباط، تقوم الدالة `snd_soc_unbind_card()` بإفراغ المهام المؤجلة ثم تستدعي `soc_cleanup_card_resources()`. أثناء عملية التنظيف، تحرر الدالة `snd_card_disconnect_sync()` جميع معرفات الملفات (file descriptors) الخاصة بـ PCM، ويمكن لمسار إغلاق PCM الناتج أن يستدعي `snd_soc_dapm_stream_stop()`، والذي يبرمج مهامًا مؤجلة جديدة مع تأخير مؤقت `pmdown_time`. نظرًا لأن هذا يحدث بعد عملية الإفراغ في `snd_soc_unbind_card()`، فإن المهمة الجديدة لا يتم التقاطها. بعد ذلك، تقوم `soc_remove_link_components()` بتحرير وحدات DAPM قبل أن تُنفَّذ هذه المهمة، مما يؤدي إلى حدوث خطأ استخدام بعد التحرير (use-after-free).
لا يمكن لعملية الإفراغ الموجودة حاليًا في `soc_free_pcm_runtime()` أن تساعد أيضًا، لأنها تعمل بعد أن تكون `soc_remove_link_components()` قد حررت وحدات widgets بالفعل.
تمت إضافة عملية إفراغ في `soc_cleanup_card_resources()` بعد استدعاء `snd_card_disconnect_sync()` (الذي لا يمكن بعده لعمليات إغلاق PCM الجديدة أن تبرمج المزيد من المهام المؤجلة) وقبل استدعاء `soc_remove_link_dais()` و `soc_remove_link_components()` (التي تقوم بتفكيك الهياكل التي تصل إليها المهام المؤجلة).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.