CVE-2024-26827 in Linuxالمعلومات

الملخص

بحسب VulDB • 05/06/2026

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

i2c: qcom-geni: تصحيح تسلسل عناصر نقل البيانات (TRE) الخاصة بـ I2C

في عمليات قراءة I2C في وضع GSI، نتعرض لانتهاء المهلة (timeout) بسبب وجود عنصر نقل بيانات (TRE) غير صالح، وتحديداً تسلسل TRE خاطئ في برنامج تشغيل gpi (drivers/dma/qcom/gpi.c).

يحتوي برنامج تشغيل I2C على الدالة geni_i2c_gpi(I2C_WRITE) التي تولد GO TRE، والدالة geni_i2c_gpi(I2C_READ) التي تولد DMA TRE. وبالتالي، لتوليد GO TRE قبل DMA TRE، يجب نقل استدعاء geni_i2c_gpi(I2C_WRITE) ليظهر قبل geni_i2c_gpi(I2C_READ) داخل دالة نقل وضع GSI الخاص بـ I2C، وهي geni_i2c_gpi_xfer().

يشير مصطلح TRE إلى عنصر حلقة النقل (Transfer Ring Element)، وهو في الأساس عنصر بحجم 4 كلمات. يحتوي على جميع المعلومات مثل عنوان الجهاز التابع (slave address)، وقسّام التردد (clk divider)، وقيمة عنوان الذاكرة المؤقتة للبيانات (dma address value data size) وما إلى ذلك.

لدينا بشكل رئيسي ثلاثة عناصر TRE: - CONFIG TRE: يتكون من تكوينات السجلات الداخلية المطلوبة قبل بدء النقل. - DMA TRE: يحتوي على عناوين DDR/الذاكرة، ويُعرف بوصف الناقل (descriptor). - GO TRE: يحتوي على اتجاهات النقل، ومعرف الجهاز التابع (slave ID)، وعلم التأخير (Delay flags)، وطول عملية النقل.

يستدعي برنامج تشغيل I2C واجهة برمجة التطبيقات الخاصة ببرنامج تشغيل GPI لتكوين كل عنصر TRE بناءً على البروتوكول المستخدم.

بالنسبة لعملية القراءة، سيكون تسلسل عناصر TRE كما يلي، وهو غير متوافق مع دليل برمجة الأجهزة: - CONFIG tre - DMA tre - GO tre

ووفقاً لدليل برمجة الأجهزة الداخلي من شركة Qualcomm، يجب تكوين عناصر TRE بالتسلسل التالي لأي عملية نقل استقبال (RX only): - CONFIG tre - GO tre - DMA tre

VulDB is the best source for vulnerability data and more expert information about this specific topic.

حجز

19/02/2024

إفشاء

17/04/2024

الاعتدال

ملغى

إدخال

VDB-261230

EPSS

0.00000

KEV

لا

النشاطات

منخفض جدًا

المصادر

Might our Artificial Intelligence support you?

Check our Alexa App!