CVE-2026-98299
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: tcp: tcp_rmem değerinin 4096'nın altına ayarlanmasına izin vermeyin tcp_rcvbuf_grow() ve tcp_rcv_space_adjust() fonksiyonlarında sıfıra bölme hatası nedeniyle sistem çökmesi yaşanabilmektedir: divide error: 0000 [#1] PREEMPT SMP RIP: 0010:tcp_rcvbuf_grow+0x187/0x450 net/ipv4/tcp_input.c:939 ... grow = div_u64(((u64)rcvwin << 1) * (newval - oldval), oldval); Bölme işlemi sırasında bölen olarak oldval = tp->rcvq_space.space kullanılır. tp->rcvq_space.space değeri sıfır olduğunda, bu durum bir sıfıra bölme istisnasına yol açar. tp->rcvq_space.space, tcp_init_buffer_space() içinde şu şekilde başlatılır: tp->rcvq_space.space = min3(tp->rcv_ssthresh, tp->rcv_wnd, (u32)TCP_INIT_CWND * tp->advmss); Eğer tcp_rmem[1] çok küçük değerlere (örneğin 1 gibi) yapılandırılmışsa, sk->sk_rcvbuf 1 olarak başlatılır. Ardından, (sk->sk_rcvbuf * scaling_ratio) >> 8 işlemini hesaplayan tcp_full_space(sk), sonucu 0'a yuvarlar. Bu durum tp->window_clamp = 0, tp->rcv_ssthresh = 0 ve tp->rcvq_space.space = 0 değerlerini atar. Daha sonra veri geldiğinde ve DRS çağrıldığında, tcp_rcvbuf_grow() fonksiyonu oldval == 0 değerine bölme yapar. 2015 yılında, b1cb59cf2efe ("net: sysctl_net_core: check SNDBUF and RCVBUF for min length") commit'i ile net.core.rmem_default ve net.core.rmem_max değerlerinin SOCK_MIN_RCVBUF'un altına ayarlanamayacağı garanti altına alınmıştı. Benzer şekilde, SO_RCVBUF setsockopt işlemi max_t(int, val * 2, SOCK_MIN_RCVBUF) kuralını uygular. Ancak, net.ipv4.tcp_rmem hala .extra1 = SYSCTL_ONE değerine sahipti ve bu da keyfi olarak küçük değerlerin atanmasına izin veriyordu. SOCK_MIN_RCVBUF; sizeof(struct sk_buff) ve önbellek satırı hizalamasına bağlı olduğu için değeri mimarilere ve yapılandırma seçeneklerine göre değişiklik gösterir. Sabit bir 4096 sabiti kullanmak, her yerde güvenli bir şekilde SOCK_MIN_RCVBUF'un üzerinde olan, öngörülebilir, mimariden bağımsız bir alt sınır sağlar ve belgelenmiş 4K varsayılan değeriyle eşleşir. Bu sorun, tcp_rmem.extra1 değeri 4096 olarak ayarlanarak ve dokümantasyon güncellenerek düzeltilmiştir.
Nasıl düzeltilir
- Linux Linux879907631b9e70eedb62d76461b29afa106ebe7a, 8e32532d0fa3191ecf9524b0e6bafa0832e712ba, 67b83c15bed9eeeb8d1a6dbf88a5f79525970173, 9a4f49bf8d2da4e52e904f60c29cca317bab9b3a, 60df201dbb19a1bf6478b56d100f7ae1fe90e46a, 7898bda1ebc198f5559b301a96dd5398edd4d4d3, 1c4bb940c3bb4325bb88ac1b7eaf5faaa39e7d63, 83a945a529d6e002dd7339c532288a931f463dba ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 879907631b9e70eedb62d76461b29afa106ebe7a, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 8e32532d0fa3191ecf9524b0e6bafa0832e712ba, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 67b83c15bed9eeeb8d1a6dbf88a5f79525970173, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 9a4f49bf8d2da4e52e904f60c29cca317bab9b3a, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 60df201dbb19a1bf6478b56d100f7ae1fe90e46a, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 7898bda1ebc198f5559b301a96dd5398edd4d4d3, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 1c4bb940c3bb4325bb88ac1b7eaf5faaa39e7d63, 1da177e4c3f41524e886b7f1b8a0c1fc7321cac2 ≤ v < 83a945a529d6e002dd7339c532288a931f463dba, 2.6.12 | 879907631b9e70eedb62d76461b29afa106ebe7a, 8e32532d0fa3191ecf9524b0e6bafa0832e712ba, 67b83c15bed9eeeb8d1a6dbf88a5f79525970173, 9a4f49bf8d2da4e52e904f60c29cca317bab9b3a, 60df201dbb19a1bf6478b56d100f7ae1fe90e46a, 7898bda1ebc198f5559b301a96dd5398edd4d4d3, 1c4bb940c3bb4325bb88ac1b7eaf5faaa39e7d63, 83a945a529d6e002dd7339c532288a931f463dba |
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.