CVE-2026-89670

Yüksek

Açıklama

Linux kernel'da aşağıdaki güvenlik açığı giderilmiştir: nfsd: localio cmpxchg yeniden denemesi boyunca rcu tutuluyor nfsd_file nesneleri call_rcu (filecache.c:296) aracılığıyla serbest bırakılır ve nfsd_file_slab, SLAB_TYPESAFE_BY_RCU olmadan oluşturulur (filecache.c:789 adresindeki KMEM_CACHE(nfsd_file, 0)), bu nedenle serbest bırakılan bir nfsd_file'ı destekleyen slab sayfası, RCU zarafet süresi dolduğunda serbestçe geri kazanılabilir hale gelir. nfsd_open_local_fh() içindeki "again: retry" bloğu, cmpxchg ile bir işaretçiyi yükler ve ardından rcu_read_lock tutmadan nfsd_file_get(new) (refcount_inc_not_zero olan) fonksiyonunu çağırır. Tek çağırıcı olan nfs_open_local_fh(), bu yardımcı fonksiyonu çağırmadan önce rcu_read_lock kilidini bıraktığından, yükleme işlemini kapsayan herhangi bir dış okuyucu tarafı kritik bölümü bulunmamaktadır. CPU 0 (nfsd_open_local_fh) CPU 1 (nfsd_file_put_local) ----- ----- new = cmpxchg(pnf, NULL, ...) nf = xchg(pnf, NULL) nfsd_file_put(nf) son referans -> call_rcu() /* zarafet süresi dolar; slab sayfası geri dönüştürülür */ nfsd_file_get(new) refcount_inc_not_zero(&new->nf_ref) /* geri dönüştürülmüş bellek üzerinde işlem yapar */ Geri dönüştürülmüş nesnenin nf_ref ofsetindeki sıfır olmayan bir kelime, referans sayacı artırımının başarılı görünmesine neden olur ve çağırıcı daha sonra serbest bırakılmış bellekten new->nf_net ve new->nf_file ifadelerini dereference eder. Hata, cmpxchg işleminden hemen önce rcu_read_lock() alınarak ve if (new) bloğunun üç çıkışında da (goto-again yeniden denemesi, kaybedilen yarış temizleme yolu ve kurulumun başarılı olduğu yol) serbest bırakılarak düzeltilmiştir. nfsd_file_put() ve nfsd_net_put() fonksiyonları, engellenmeye devam edebilmeleri için RCU bölümünün dışında tutulmuştur.

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

Nasıl düzeltilir

Güncelleyin
  • Linux Linux763c0bad872368304db718f79af7e93048885c67, 559570f91a7d4d199a72105e4980bef791f4cbf1, 58884694978a3d7d111edb433d7fd6a6c5af2f34, 6.16 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linuxe6f7e1487ab528a6c653bd0d42812ff2942846cd ≤ v < 763c0bad872368304db718f79af7e93048885c67, e6f7e1487ab528a6c653bd0d42812ff2942846cd ≤ v < 559570f91a7d4d199a72105e4980bef791f4cbf1, e6f7e1487ab528a6c653bd0d42812ff2942846cd ≤ v < 58884694978a3d7d111edb433d7fd6a6c5af2f34, 986a21ace186433e0397a59491646edad8c8d636, 6.15.3 ≤ v < 6.16, 6.16763c0bad872368304db718f79af7e93048885c67, 559570f91a7d4d199a72105e4980bef791f4cbf1, 58884694978a3d7d111edb433d7fd6a6c5af2f34, 6.16

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.