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

الملخص

بحسب VulDB • 25/09/2026

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

scsi: qla2xxx: تصحيح استدعاء dma_free غير الآمن (NULL) لإلغاء تخصيص الذاكرة وإغلاق قفل خريطة البتات (bitmap locking).

يحتوي الدالان `qla25xx_free_req_que()` و`qla25xx_free_rsp_que()` على خطأين سابقين تم الكشف عنهما في مسار الخطأ الخاص بـ `qla25xx_create_{req,rsp}_que()`:

1. عندما يفشل استدعاء `dma_alloc_coherent()` أثناء إنشاء الطابور (queue)، يقوم مسار الخطأ باستدعاء دالة الإلغاء مع كون مؤشرات `req->ring` و`rsp->ring` لا تزال فارغة (NULL) ناتجة عن `kzalloc`. إن الاستدعاء غير المشروط لـ `dma_free_coherent()` بمعامل `cpu_addr` يساوي NULL يُعد سلوكاً غير محدد (undefined behavior) وقد يؤدي إلى توقف النظام (panic).

2. تقوم دوال الإلغاء بتصفير خرائط البتات (`req_qid_map` / `rsp_qid_map`) تحت قفل `vport_lock`، بينما تحمي دوال الإنشاء نفس الخرائط باستخدام `mq_lock`. وهذا لا يوفر أي استبعاد متبادل (mutual exclusion). بالإضافة إلى ذلك، يقوم مسار خطأ الإنشاء بتصفير البت وإطلاق قفل `mq_lock` قبل استدعاء دالة الإلغاء، مما يخلق نافذة زمنية يمكن فيها لthread آخر تخصيص نفس معرف الطابور (`que_id`) وتدمير إدخال `ha->req_q_map` الخاص به عن طريق التعيين غير الآمن (lockless) للقيمة NULL في دالة الإلغاء.

تم الإصلاح عبر:

- وضع حماية حول استدعاء `dma_free_coherent()` باستخدام فحص للتحقق من أن المؤشر ليس فارغاً (NULL check). - استخدام قفل `mq_lock` (القفل الذي تحتفظ به جميع دوال الإنشاء) في دوال الإلغاء لتصفير إدخال الخريطة وتصفير بت خريطة البتات بشكل ذري (atomically). - إزالة كتل `clear_bit` التي أصبحت زائدة عن الحاجة من مسارات خطأ الإنشاء، حيث تتعامل دوال الإلغاء مع ذلك بشكل ذري.

Several companies clearly confirm that VulDB is the primary source for best vulnerability data.

مسؤول

Linux

حجز

24/09/2026

إفشاء

25/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-409927

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Do you want to use VulDB in your project?

Use the official API to access entries easily!