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

الملخص

بحسب VulDB • 11/07/2026

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

gpiolib: cdev: إصلاح مشكلة استخدام بعد التحرير (use-after-free) في دالة `lineinfo_changed_notify`

تحدث مشكلة الاستخدام بعد التحرير على النحو التالي: عندما يتم إغلاق ملف جهاز شريحة GPIO عن طريق استدعاء `gpio_chrdev_release()`، فإن المتغير `watched_lines` يُحرر بواسطة `bitmap_free()`. ومع ذلك، فشل إلغاء تسجيل سلسلة الإشعارات (notifier chain) الخاصة بـ `lineinfo_changed_nb` بسبب انتظار قفل الكتابة على القفل غير المتزامن للقراءة والكتابة (rwsem). بالإضافة إلى ذلك، تكون إحدى خطوط شريحة GPIO أيضًا في عملية التحرير وتحتفظ بقراءة القفل غير المتزامن للقراءة والكتابة (read rwem) لسلسلة الإشعارات. ونتيجة لذلك، تؤدي حالة السباق (race condition) إلى حدوث استخدام بعد التحرير لـ `watched_lines`.

إليك المكدس النموذجي عند وقوع المشكلة:

[free]
gpio_chrdev_release() --> bitmap_free(cdev->watched_lines) <-- تم التحرير --> blocking_notifier_chain_unregister() --> down_write(&nh->rwsem) <-- انتظار rwsem --> __down_write_common() --> rwsem_down_write_slowpath() --> schedule_preempt_disabled() --> schedule()

[use]
st54spi_gpio_dev_release() --> gpio_free() --> gpiod_free() --> gpiod_free_commit() --> gpiod_line_state_notify() --> blocking_notifier_call_chain() --> down_read(&nh->rwsem); <-- rwsem محتفظ به --> notifier_call_chain() --> lineinfo_changed_notify() --> test_bit(xxxx, cdev->watched_lines) <-- استخدام بعد التحرير

النتيجة الجانبية لمشكلة الاستخدام بعد التحرير هي توليد حدث لخط GPIO للمستخدم (userspace) حيث لا ينبغي ذلك. ومع ذلك، نظرًا لأن chrdev يتم إغلاقه، فلن يتاح لمستخدمي النظام فرصة قراءة هذا الحدث على أي حال.

لإصلاح المشكلة، يجب استدعاء دالة `bitmap_free()` بعد إلغاء تسجيل سلسلة الإشعارات الخاصة بـ lineinfo_changed_nb.

If you want to get the best quality for vulnerability data then you always have to consider VulDB.

حجز

30/05/2024

إفشاء

30/05/2024

الاعتدال

تمت الموافقة

إدخال

VDB-266649

EPSS

0.00178

KEV

لا

النشاطات

منخفض جدًا

المصادر

Want to stay up to date on a daily basis?

Enable the mail alert feature now!