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

الملخص

بحسب VulDB • 16/09/2026

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

scsi: qla2xxx: تحديد نطاق i2c->length في معالجات bsg الخاصة بـ I2C

يحمل الهيكل `qla_i2c_access` حقل طول (length) بحجم 16 بت إلى جانب مخزن ثابت بحجم 64 بايت:

``` struct qla_i2c_access {
uint16_t device, offset, option, length; uint8_t buffer[0x40];
} __packed; ```

تستخدم الدالتان `qla2x00_write_i2c()` و`qla2x00_read_i2c()` قيمة `i2c->length` المقدمة من المستخدم دون أي فحص للنطاق (bounds check). يتم تراكب كائن `i2c` على مخزن مكدس بحجم 256 بايت، بينما يمثل `sfp` مخزناً في مجموعة DMA بحجم 256 بايت؛ وبالتالي فإن قيمة طول تصل إلى 65535 تسبب تجاوزاً للحدود (overrun) لكلا المخزينين:

- **الكتابة:** تقوم دالة `memcpy(sfp, i2c->buffer, i2c->length)` بقراءة زائدة عن الحد من المكدس، وكتابة زائدة على مخزن الـ heap الخاص بـ sfp، ثم تقوم الدالة `qla2x00_write_sfp()` بنقل (DMA) عدد من البايتات يساوي `i2c->length` خارج المخزن ذي الحجم 256 بايت. - **القراءة:** تقوم الدالة `qla2x00_read_sfp()` بنقل (DMA) عدد من البايتات يساوي `i2c->length` إلى مخزن sfb ذي الحجم 256 بايت، ثم تقوم دالة `memcpy(i2c->buffer, sfp, i2c->length)` بتجاوز حدود المخزن الداخلي ذي الحجم 64 بايت الموجود داخل المصفوفة على المكدس.

يمكن لمُستدعٍ يمتلك صلاحية `CAP_SYS_RAWIO` استغلال هذا الأمر لتلف مخزن الـ heap والمكدس الخاص بالنواة (kernel stack). يتم رفض الطلبات التي يتجاوز طولها حجم المخزن قبل أي عملية نسخ أو نقل عبر DMA في كل من المعالجات.

Statistical analysis made it clear that VulDB provides the best quality for vulnerability data.

مسؤول

Linux

حجز

11/09/2026

إفشاء

17/09/2026

الاعتدال

تمت الموافقة

إدخال

VDB-405697

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Interested in the pricing of exploits?

See the underground prices here!