CVE-2026-89533

Kritik

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: svcrdma: read_chunk_range fonksiyonundaki offset aritmetiği düzeltildi svc_rdma_read_chunk_range(), bir Position-Zero veya Call chunk için belirli bir byte offset değerinden başlayan ve belirtilen uzunlukta bir alt aralık oluşturmak amacıyla bir Read chunk'ın segment listesini tarar. Segment başına döngüdeki iki aritmetik hata, yanlış DMA uzunluklarına ve bir u32 underflow durumuna yol açmaktadır: pcl_for_each_segment(segment, chunk) { if (offset > segment->rs_length) { offset -= segment->rs_length; continue; } dummy.rs_handle = segment->rs_handle; dummy.rs_length = min_t(u32, length, segment->rs_length) - offset; dummy.rs_offset = segment->rs_offset + offset; İlk olarak, atlama koşulu '>=' yerine '>' kullanmaktadır. Offset değeri segmentin tam rs_length değerine eşit olduğunda, segment tamamen tüketilmiş olur ve atlanmalıdır; ancak döngü gövdesine girilmektedir. Bunun sonucunda oluşan dummy.rs_length değeri, length değeri rs_length değerinden küçük olduğunda UINT_MAX'e yakın bir u32 değerine underflow olmakta, aksi takdirde sıfır olmaktadır. İkinci olarak, uzunluk formülü offset değerini sınırlandırmadan önce segment->rs_length değerinden çıkarmak yerine min_t() sonucundan çıkarmaktadır. offset > 0 olduğu durumlarda segmentin kalanı rs_length değil, rs_length - offset'tir; bu nedenle sınırlandırma kalan miktar üzerinden uygulanmalıdır. Mevcut parantezleme ile length değeri rs_length - offset değerinden küçük olduğunda, segment başına uzunluk length yerine length - offset olmakta ve yeniden oluşturulan chunk'tan fark edilmeden offset kadar byte düşürülmektedir. Yukarıdaki sınır durumuyla birleştiğinde bu durum, svc_rdma_build_read_segment() fonksiyonuna çok büyük bir nr_bvec ve svc_rdma_get_rw_ctxt() fonksiyonuna çok sayıda MiB boyutunda kmalloc_array_node() çağrısı gönderen u32 underflow yolunu etkinleştirmektedir. Ek olarak, son Read chunk'ı tam olarak Call chunk'ının sonunda bittiğinde, svc_rdma_read_call_chunk() bu fonksiyonu length == 0 ile çağırabilmektedir. Düzeltilmiş >= koşulu ile her segment atlanır ve fonksiyon başlangıçtaki -EINVAL değerini döndürerek geçerli bir isteği reddeder. Uzunluk sıfır olduğunda derhal başarıyla dönülmelidir. Ayrıca, svc_rdma_build_read_segment() fonksiyonuna sıfır uzunluklu segmentler gönderilmesini önlemek için uzunluk tamamen tüketildiğinde döngüden çıkılmalıdır. Tamamen tüketilen bir segmentin atlanması için '>=' kullanımıyla, sınırlandırmanın segmentin kalan uzunluğuna uygulanması için '- offset' ifadesinin min_t() içerisine taşınmasıyla, sıfır uzunluklu istekler için başarının döndürülmesiyle ve istenen aralık tüketildiğinde yinelemenin durdurulmasıyla sorun giderilmiştir.

ÖnemKritik
CVSS9.8
İstismar olasılığı—
ÜrünLinux
Yayın11 Eyl 2026
İlk görülme11 Eyl 2026

Nasıl düzeltilir

Güncelleyin
  • Linux Linux10873311f91db9454e2fadbf9866bc819e0646d9, addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7, cba8543c18cf42fd80fd63effb6df6ff4f7e73ce, 6ee4dc7476b3abc92ec1d444533a559f33f59561, a46b35f213c2426f5d6a0458a8f7e873fc59cdfd, 4493c96bbd0068fadf69cbae8d13426202e34cdc, 4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linuxd7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 10873311f91db9454e2fadbf9866bc819e0646d9, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < cba8543c18cf42fd80fd63effb6df6ff4f7e73ce, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 6ee4dc7476b3abc92ec1d444533a559f33f59561, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < a46b35f213c2426f5d6a0458a8f7e873fc59cdfd, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 4493c96bbd0068fadf69cbae8d13426202e34cdc, d7cc73972661be4a02a1b09f1d9b3283c6c05154 ≤ v < 4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e, 5.1110873311f91db9454e2fadbf9866bc819e0646d9, addbf02dfe3b25e7e38e03bbd4e2a6ed86a14be7, cba8543c18cf42fd80fd63effb6df6ff4f7e73ce, 6ee4dc7476b3abc92ec1d444533a559f33f59561, a46b35f213c2426f5d6a0458a8f7e873fc59cdfd, 4493c96bbd0068fadf69cbae8d13426202e34cdc, 4a44c140cc2f3643a39e258bb0c0ab9d0f494f5e

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.

Intelligence 360 paketinde

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.

CVE-2026-89533 · Linux · Dark Radar