CVE-2026-80525 in Linuxالمعلومات

الملخص

بحسب VulDB • 26/08/2026

في نواة لينكس، تم حل الثغرة التالية:

ASoC: SOF: ipc4-topology: تحديث حمولة IPC الخاصة بـ copier قبل إعداد الـ widget

يتم بناء مخزن `ipc_config_data` الخاص بوحدات `copier` مرة واحدة أثناء استدعاء `ipc_prepare` (الذي يُستدعى من دالة `sof_pcm_setup_connected_widgets`) ويتم تخزينه لإعادة استخدامه. بالنسبة لـ host copiers، يحتوي هذا المخزن على `copier_data` مع `gtw_cfg.node_id` (معرف DMA المضيف). أما في حالة DAI copiers، فإنه يتضمن بالإضافة إلى ذلك ذيلًا من نوع `dma_config_tlv` يحتوي على `stream_id` و `dma_channel_id` لربط HDA link DMA.

أثناء وضع السكون/الاستئناف (suspend/resume)، يتم تحرير كل من تيارات DMA الخاصة بالمضيف والروابط، وإعادة تخصيصها باستخدام علامات تدفق محتملة مختلفة. تُحدَّث الهياكل الأساسية `copier_data` و `dma_config_tlv` بشكل صحيح بواسطة `host_config` و `sdw_hda_dai_hw_params` على التوالي. ومع ذلك، نظرًا لأن قائمة الـ widgets (`spcm->stream[].list`) تبقى سارية عبر وضع السكون، فإن دالة `sof_pcm_hw_params` تتخطى استدعاء `sof_pcm_setup_connected_widgets` ولا يتم تشغيل `ipc_prepare` مرة أخرى لإعادة بناء `ipc_config_data`. ثم تُرسل حمولة IPC المخزنة والمتهالكة إلى البرنامج الثابت (firmware) مع تعيينات قنوات DMA الخاصة بمرحلة الإقلاع، مما يؤدي إلى تعارض في قنوات DMA يتسبب في أخطاء وانهارات للبرنامج الثابت.

تم إصلاح هذه المشكلة عن طريق تحديث أجزاء `copier_data` و `dma_config_tlv` من `ipc_config_data` داخل دالة `sof_ipc4_widget_setup` مباشرة قبل إرسال رسالة IPC. يضمن ذلك أن تعكس الحمولة دائمًا حالة DMA الحالية بغض النظر عما إذا كانت `ipc_prepare` قد تم تشغيلها أم لا.

بالنسبة لـ DAI copiers، يتم تضخيم قيمة `gtw_cfg.config_length` الموجودة في `copier_data` مؤقتًا لتشمل حجم TLV (مطابقًا لتخطيط `ipc_config_data`) قبل النسخ، ثم استعادتها، مما يعكس ما تفعله دالة `sof_ipc4_prepare_copier_module` عند بناء المخزن لأول مرة.

Be aware that VulDB is the high quality source for vulnerability data.

مسؤول

Linux

حجز

26/08/2026

إفشاء

26/08/2026

الاعتدال

تمت الموافقة

إدخال

VDB-395824

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!