CVE-2026-80849
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net/tcp-ao: başka bir eşe yeniden bağlanırken current_key üzerinde serbest bırakıldıktan sonra kullanım (use-after-free) hatası düzeltildi tcp_inbound_ao_hash(), yalnızca rcu_read_lock() tutulurken ve bh_lock_sock_nested() alınmadan önce çağrılır. Kurulmuş soketler için hızlı yolda, eş tarafından gönderilen rnext_keyid, current_key->sndid değerinden farklıysa, eşin istediği anahtar aranır ve current_key içinde saklanır. Arama işlemi RCU okuma tarafında gerçekleşir ancak current_key bu süreden daha uzun süre varlığını sürdürür. Soket bağlantısı kesildiğinde ve başka bir eş için tekrar connect() çağrıldığında, tcp_ao_connect_init() yeni eşle eşleşmeyen her anahtarı ayıklar ve call_rcu() ile serbest bırakır. Eğer current_key böyle bir anahtara işaret ediyorsa, NULL olarak temizlenir. Hızlı yol girişinde sk_state değerini yalnızca bir kez okur; bu nedenle soket henüz kuruluyken içeri giren bir softirq, döngü çalıştıktan sonra current_key değerini güncelleyebilir. Güncelleme RCU okuma tarafında olduğundan call_rcu() geri çağırmasından önce gelir ve geri çağırma anahtarı serbest bıraktığında, current_key serbest bırakılmış belleğe işaret etmeye devam eder. Bir sonraki iletim, bu işaretçiyi tcp_get_current_key() fonksiyonunda alır. Ardından tcp_ao_transmit_skb(), trafik anahtarını serbest bırakılmış nesneden okur; bu durum serbest bırakıldıktan sonra kullanım (use-after-free) hatasına yol açar. Ayıklamadan önce ve yalnızca bir anahtar kaldırılacaksa bir lütuf dönemi (grace period) beklenir. tcp_connect() çalıştığında soket zaten TCP_SYN_SENT durumundadır ve TCP_AO_ESTABLISHED durumu TCPF_SYN_SENT içermez; dolayısıyla beklemeden sonra giren bir softirq hızlı yola ulaşamaz ve halihazırda orada olanlar işlemini tamamlamış olur. Bu durumda döngüdeki mevcut NULL işleme mekanizması yeterli hale gelir.
Nasıl düzeltilir
- Linux Linux84a93b4e012587d0a4a84ffb23ec6da18e9d85f9, 73fde8fe4469f4ed8f0afcc0b9d6413002a9e6b3, e54ad693eddb40c595add013f545354c538e325b, 2857dcbd03cf3354af0fba1b65c6a260fb43811a, da4471557f279d0f56605158a625bb6e49ef7d41 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 0a3a809089eb1d4a0a2fd0c16b520d603988c859 ≤ v < 84a93b4e012587d0a4a84ffb23ec6da18e9d85f9, 0a3a809089eb1d4a0a2fd0c16b520d603988c859 ≤ v < 73fde8fe4469f4ed8f0afcc0b9d6413002a9e6b3, 0a3a809089eb1d4a0a2fd0c16b520d603988c859 ≤ v < e54ad693eddb40c595add013f545354c538e325b, 0a3a809089eb1d4a0a2fd0c16b520d603988c859 ≤ v < 2857dcbd03cf3354af0fba1b65c6a260fb43811a, 0a3a809089eb1d4a0a2fd0c16b520d603988c859 ≤ v < da4471557f279d0f56605158a625bb6e49ef7d41, 6.7 | 84a93b4e012587d0a4a84ffb23ec6da18e9d85f9, 73fde8fe4469f4ed8f0afcc0b9d6413002a9e6b3, e54ad693eddb40c595add013f545354c538e325b, 2857dcbd03cf3354af0fba1b65c6a260fb43811a, da4471557f279d0f56605158a625bb6e49ef7d41 |
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.