CVE-2024-40979 in Linux
الملخص
بحسب VulDB • 11/05/2026
فيما يلي ترجمة النص إلى اللغة العربية:
الآن يعمل جهاز ath12k. إذا تم تفعيل وضع السكون (suspend)، فسيتم إعادة تحميل البرنامج الثابت (firmware) أثناء الاستئناف (resume). كما كان الحال سابقاً، يطلب البرنامج الثابت قطعتين كبيرتين من الذاكرة في البداية. في الدالة `ath12k_qmi_msg_mem_request_cb()`، يتم تعيين عدد القطعات وأحجامها كالتالي:
```c ab->qmi.mem_seg_count == 2 ab->qmi.target_mem[0].size == 7077888
ab->qmi.target_mem[1].size == 8454144
```
ثم يفشل التخصيص كما كان الحال سابقاً، وتُستدعى الدالة `ath12k_qmi_free_target_mem_chunk()` لتحرير جميع القطعات المخصصة. لاحظ أن القطعة الأولى يتم تخطيها لأن حقل `v.addr` الخاص بها تم تصفيره بسبب فشل التخصيص:
```c chunk->v.addr = dma_alloc_coherent() ```
كما لاحظ أن هذه القطعة تتسرب (leaks) لأنها لم يتم تحريرها.
أثناء تحرير القطعة الثانية، يتم تمرير حجم قدره 8454144 إلى الدالة `dma_free_coherent()`. ومع ذلك، تذكر أن هذه القطعة تم تخصيصها في المرة الأولى التي تم فيها تحميل البرنامج الثابت، قبل وضع السكون. لذا فإن حجمها الفعلي هو 524288، وهو أصغر بكثير من 8454144. ونتيجة لذلك، يجد النظام أن هناك محاولة لتحرير ذاكرة قيد الاستخدام، مما يؤدي إلى حدوث تعطل (crash).
Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.