CVE-2025-38687
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: comedi: sorğu göndərmə (polling) və ayrılma arasındakı yarış şərtinin (race condition) düzəldilməsi Syzbot aşağıdakı linkdə comedi-də use-after-free xətasını bildirir. Bu, daxildəki wait_queue_head üzərində hələ də aktiv poll sorğuları olmasına baxmayaraq, comedi-nin ayrılmış async sahəsini silməsi səbəbindən baş verir. wait_queue_head üçün yaddaş azad edildiyi üçün, poll girişləri daha sonra tetikləndikdə və ya silindikdə bu, use-after-free xətasına səbəb ola bilər. Cihazın `COMEDI_DEVCONFIG` ioctl vasitəsilə ayrılmasına icazə verməzdən əvvəl heç bir alt cihazın gözləmə növbələrində (wait queues) növbədə gözləyən tapşırıqların olmadığından əmin olmalıyıq. Tapşırıqlar özlərini alt cihazın gözləmə növbəsinə əlavə etməzdən əvvəl `dev->attach_lock`-u oxuma kilidinə (read-lock) alacaqlar, buna görə də bütün alt cihazların silinməsinin təhlükəsiz olduğunu yoxlamazdan əvvəl `dev->attach_lock`-u yazma kilidinə (write-lock) alaraq `COMEDI_DEVCONFIG` ioctl idarəedicisində problemi həll edin. Bura alt cihazların gözləmə növbələrində hər hansı yatan proseslərin (sleepers) yoxlanılması da daxildir. Kilid, cihaz ayrılana qədər bağlı qalır. Bu, `comedi_device_detach()` funksiyasının bir qədər yenidən qurulmasını və onun əsas hissəsinin yeni `comedi_device_detach_locked()` funksiyasına köçürülməsini tələb edir. Qeyd edin ki, `comedi_device_detach()` funksiyasının yenidən qurulması nəticəsində `comedi_device_cancel_all()` artıq `dev->attach_lock` yazma kilidi ilə bağlı olduğu halda çağırılır; əvvəllər belə deyildi, lakin bunun heç bir əhəmiyyəti yoxdur. Problemin diaqnostikasına və bu yamanın birgə hazırlanmasına görə Jens Axboe-ya təşəkkürlər.
Necə düzəltmək olar
- linux linux_kernel5.4.297, 5.10.241, 5.15.190, 6.1.149, 6.6.103, 6.12.43, 6.15.11, 6.16.2 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 | 3.14 ≤ v < 5.4.297, 5.5 ≤ v < 5.10.241, 5.11 ≤ v < 5.15.190, 5.16 ≤ v < 6.1.149, 6.2 ≤ v < 6.6.103, 6.7 ≤ v < 6.12.43, 6.13 ≤ v < 6.15.11, 6.16 ≤ v < 6.16.2 | 5.4.297, 5.10.241, 5.15.190, 6.1.149, 6.6.103, 6.12.43, 6.15.11, 6.16.2 |
| debian debian_linux | 11.0 | — |
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.