CVE-2024-36899
Təsvir
Linux kernelində aşağıdakı zəiflik aradan qaldırılıb: gpiolib: cdev: lineinfo_changed_notify funksiyasında istifadədən sonra azad etmə xətası düzəldilib İstifadədən sonra azad etmə problemi aşağıdakı kimi baş verir: GPIO çip cihaz faylı gpio_chrdev_release() çağırışı ilə bağlanarkən watched_lines bitmap_free() tərəfindən azad edilir, lakin lineinfo_changed_nb notifier zəncirinin qeydiyyatdan çıxarılması yazma rwsem-ini gözlədiyi üçün uğursuz olur. Bundan əlavə, GPIO çipin sətirlərindən biri də buraxılma prosesindədir və notifier zəncirinin oxuma rwsem-ini saxlayır. Nəticədə yaranan yarış vəziyyəti watched_lines-ın istifadədən sonra azad edilməsinə gətirib çıxarır. Problem baş verdikdə tipik stack belədir: [azad etmə] gpio_chrdev_release() --> bitmap_free(cdev->watched_lines) <-- azad edilir --> blocking_notifier_chain_unregister() --> down_write(&nh->rwsem) <-- rwsem gözləyir --> __down_write_common() --> rwsem_down_write_slowpath() --> schedule_preempt_disabled() --> schedule() [istifadə] st54spi_gpio_dev_release() --> gpio_free() --> gpiod_free() --> gpiod_free_commit() --> gpiod_line_state_notify() --> blocking_notifier_call_chain() --> down_read(&nh->rwsem); <-- rwsem saxlanılır --> notifier_call_chain() --> lineinfo_changed_notify() --> test_bit(xxxx, cdev->watched_lines) <-- istifadədən sonra azad etmə İstifadədən sonra azad etmə probleminin yan təsiri ondan ibarətdir ki, istifadəçi məkanı üçün olmamalı olduğu halda GPIO sətir hadisəsi yaradılır. Lakin chrdev bağlandığı üçün istifadəçi məkanının həmin hadisəni oxumaq imkanı heç bir halda olmayacaq. Problemi həll etmək üçün bitmap_free() funksiyasını lineinfo_changed_nb notifier zəncirinin qeydiyyatdan çıxarılmasından sonra çağırın.
Necə düzəltmək olar
- linux linux_kernel6.6.31, 6.8.10 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 5.7 ≤ v < 6.6.31, 6.7 ≤ v < 6.8.10, 6.9 | 6.6.31, 6.8.10 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.