CVE-2026-46227

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: sctp: SCTP_SENDALL içindeki sctp_sendmsg_to_asoc() sonrası liste imleci yeniden doğrulanıyor sctp_sendmsg() içerisindeki SCTP_SENDALL yolu, döngü gövdesi çalışmadan önce bir sonraki girdiyi @tmp değişkeninde önbelleğe alan list_for_each_entry_safe() ile ep->asocs üzerinde yineleme yapar. Gövde, sctp_wait_for_sndbuf() içinde soket kilidini bırakabilen sctp_sendmsg_to_asoc() fonksiyonunu çağırır. Kilit bırakıldığında, başka bir iş parçacığı @tmp içinde önbelleğe alınan ilişkilendirmeyi SCTP_SOCKOPT_PEELOFF yapabilir ve bunu sctp_sock_migrate() aracılığıyla yeni bir uç noktaya taşıyabilir (newep->asocs kısmına list_del_init() + list_add_tail()), ardından isteğe bağlı olarak yeni soketi kapatarak ilişkilendirmeyi kfree_rcu() üzerinden serbest bırakabilir. Önbelleğe alınan @tmp, kilit bırakılmışken softirq sırasında işlenen ağ kaynaklı bir ABORT işlemiyle de serbest bırakılabilir. sctp_wait_for_sndbuf(), yeniden kilitleme sırasında "sk != asoc->base.sk" ve "asoc->base.dead" kontrolleri aracılığıyla @asoc'yi (güncel girdi) yeniden doğrular ancak hiçbir şey @tmp'yi yeniden doğrulamaz. Başarılı bir dönüşten sonra, yineleyici bayatlamış olan @tmp'ye ilerler; bu durum ya bir serbest bırakıldıktan sonra kullanım (peeled soket kapatılmışsa) ya da yeni uç noktanın liste başına doğru bir liste yürütme işlemine (&newep->asocs ifadesinin struct sctp_association * olarak tür karmaşası yaşaması) yol açar. Her iki duruma da CapEff=0 üzerinden erişilebilir; tür karmaşası yolu, outqueue.sched->init_sid işaretçisi aracılığıyla kontrollü dolaylı çağrı sağlar. Hata, sctp_sendmsg_to_asoc() döndükten sonra @tmp değerinin @asoc üzerinden yeniden türetilmesiyle düzeltilmiştir. Bu noktada @asoc'nin hala ep->asocs üzerinde olduğu bilinmektedir: Bir ilişkilendirmeyi ep->asocs listesinden list_del yapan tek çağrıcılar sctp_association_free() (asoc->base.dead değerini ayarlar) ve sctp_assoc_migrate() (asoc->base.sk değerini değiştirir) fonksiyonlarıdır ve sctp_wait_for_sndbuf() herhangi bir başarılı dönüşten önce kilit altında her ikisini de kontrol eder; başarısız bir kontrol err < 0 olarak yayılır ve döngü yeniden türetme gerçekleşmeden önce sonlanır. sctp_sendmsg_check_sflags() içerisindeki SCTP_ABORT yolu 0 döndürür ve sctp_sendmsg_to_asoc() hiç çağrılmadan döngü 'continue' aşamasına geçer, böylece list_for_each_entry_safe() tarafından önbelleğe alınan @tmp, ba59fb027307 ("sctp: walk the list of asoc safely") yamasının eklendiği kilit tutulurken gerçekleşen serbest bırakma işlemini hala kapsar.

ÖnemYüksek
CVSS7.8
İstismar olasılığı—
ÜrünLinux Kernel
Yayın28 May 2026
İlk görülme28 May 2026

Nasıl düzeltilir

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel4.17 ≤ v < 5.10.258, 5.11 ≤ v < 5.15.209, 5.16 ≤ v < 6.1.175, 6.2 ≤ v < 6.6.140, 6.7 ≤ v < 6.12.90, 6.13 ≤ v < 6.18.32, 6.19 ≤ v < 7.0.9, 7.15.10.258, 5.15.209, 6.1.175, 6.6.140, 6.12.90, 6.18.32, 7.0.9

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-46227 · Linux Kernel · Dark Radar