CVE-2026-89507
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: RDMA/ucma: ucma_write_cm_event() fonksiyonundaki handler kilitlenmelidir ctx->file yalnızca handler kilidi ve xa_lock altında değiştirilebilir; bu durum, ucma_migrate_id() bir ctx'yi başka bir dosyaya taşırken uevent'lerin o ctx için kuyruğa alınmasını engelleyen mekanizmadır. CM çekirdeği, ucma_event_handler() fonksiyonunu çağırmadan önce bu kilidi alır ancak uevent'leri kendisi kuyruğa alan write() yolları bunu yapmaz. ucma_write_cm_event(), dört adet referansının her biri için ctx->file değerini yeniden okur, bu nedenle ucma_migrate_id() işlem dizisinin ortasında bunu değiştirebilir: mutex_lock(&ctx->file->mut); /* dosya A */ list_add_tail(&uevent->list, &ctx->file->event_list); /* dosya B */ mutex_unlock(&ctx->file->mut); /* dosya B */ wake_up_interruptible(&ctx->file->poll_wait); /* dosya B */ Kritik pencere mutex_lock() işleminin kendisidir: yazıcı burada uykuya geçerken taşıma işlemi ctx->file değerini yeniden atar. Ardından list_add_tail(), yalnızca dosya A'nın mutex'ini tutarken dosya B'nin event_list üzerinde çalışır: list_add bozulması. prev->next, next (ffff888101320f30) olmalıydı, ancak ffff88814a08c418 idi. (prev=ffff88814a075c18). lib/list_debug.c:32 konumunda kernel BUG! Çağrı İzleme: ucma_write_cm_event+0x36e/0x5e0 ve dosya A'nın mut kilidi sonsuza dek tutulmuş olarak kalır, bu da bir sonraki yazıcısını D durumunda kilitler. Ayrıca uevent, ucma_cleanup_ctx_events() tarafından taranmayacak bir listede mahsur kalır, böylece bağlamından daha uzun süre varlığını sürdürür. /dev/infiniband/rdma_cm izni 0666'dır ve herhangi bir RDMA aygıtı dahil değildir, dolayısıyla ayrıcalıklı olmayan bir kullanıcı tüm bunlara erişebilir. ucma_cleanup_mc_events() fonksiyonunun yaptığı gibi handler kilidini alın; ctx->cm_id, ucma_get_ctx() referansı ile sabitlenmiştir.
Nasıl düzeltilir
- Linux Linux4f8bb11dd2ff365e7cff1c9964ab4607292d364e, 0be1955040a2eceed0ecfc387fdc92305411d273, f4cc21c6a8e9d392871477f9fd98d68e5ad80272 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < 4f8bb11dd2ff365e7cff1c9964ab4607292d364e, a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < 0be1955040a2eceed0ecfc387fdc92305411d273, a3c9d0fcd3715541bbf97da2ddde9d032e2fe6d5 ≤ v < f4cc21c6a8e9d392871477f9fd98d68e5ad80272, 6.18 | 4f8bb11dd2ff365e7cff1c9964ab4607292d364e, 0be1955040a2eceed0ecfc387fdc92305411d273, f4cc21c6a8e9d392871477f9fd98d68e5ad80272 |
Sürümünüzü kontrol edin
Ürünü seçin ve kullandığınız sürümü yazın; sürümün etkilenen aralıkta olup olmadığını görün.
Attack Surface Management
Alan adlarınıza bağlı varlıkları, bu varlıklarda çalışan teknolojileri ve bilinen zafiyetleri tek listede görün.