CVE-2026-89507
Təsvir
Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: RDMA/ucma: ucma_write_cm_event() funksiyasında handler kilidini tətbiq edin ctx->file yalnız handler və xa_lock kilidləri altında dəyişdirilə bilər ki, bu da ucma_migrate_id() onu başqa fayla köçürərkən ctx üçün uevent-lərin növbəyə alınmasının qarşısını alır. CM nüvəsi ucma_event_handler() funksiyasını çağırmazdan əvvəl həmin kilidi götürür, lakin uevent-ləri özü növbəyə alan write() yolları bunu etmir. ucma_write_cm_event() dörd istinadının hər biri üçün ctx->file dəyərini yenidən oxuyur, buna görə də ucma_migrate_id() ardıcıllığın ortasında onu dəyişə bilər: mutex_lock(&ctx->file->mut); /* fayl A */ list_add_tail(&uevent->list, &ctx->file->event_list); /* fayl B */ mutex_unlock(&ctx->file->mut); /* fayl B */ wake_up_interruptible(&ctx->file->poll_wait); /* fayl B */ Kritik pəncərə mutex_lock()-ın özüdür: miqrasiya ctx->file-ı yenidən təyin edərkən yazıçı orada gözləyir. Daha sonra list_add_tail() yalnız fayl A-nın mutex-ini saxlayaraq fayl B-nin event_list-i üzərində işləyir: list_add korrupsiyası. prev->next next (ffff888101320f30) olmalı idi, lakin ffff88814a08c418 oldu. (prev=ffff88814a075c18). lib/list_debug.c:32-də kernel BUG! Call Trace: ucma_write_cm_event+0x36e/0x5e0 Və fayl A-nın mut kilidi daim bağlı qalır, bu da onun növbəti yazıcısını D vəziyyətində bloklayır. Uevent həmçinin ucma_cleanup_ctx_events() funksiyasının gəzməyəcəyi siyahıda qalır, beləliklə o, kontekstindən daha uzun müddət mövcud olur. /dev/infiniband/rdma_cm 0666 icazələrinə malikdir və heç bir RDMA cihazı iştirak etmir, buna görə də imtiyazsız istifadəçi bütün bunlara çata bilir. ucma_cleanup_mc_events() funksiyasının etdiyi kimi handler kilidini götürün; ctx->cm_id ucma_get_ctx() istinadı ilə sabitləyib.
Necə düzəltmək olar
- Linux Linux4f8bb11dd2ff365e7cff1c9964ab4607292d364e, 0be1955040a2eceed0ecfc387fdc92305411d273, f4cc21c6a8e9d392871477f9fd98d68e5ad80272 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < 4f8bb11dd2ff365e7cff1c9964ab4607292d364e, a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < 0be1955040a2eceed0ecfc387fdc92305411d273, a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < f4cc21c6a8e9d392871477f9fd98d68e5ad80272, 6.18 | 4f8bb11dd2ff365e7cff1c9964ab4607292d364e, 0be1955040a2eceed0ecfc387fdc92305411d273, f4cc21c6a8e9d392871477f9fd98d68e5ad80272 |
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.