CVE-2026-98432
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: ipv4: inet_opt ve ireq_opt'nin bir RCU grace period sonrasında serbest bırakılması tcp_v4_syn_recv_sock(), ireq->ireq_opt sahipliğini kopyalamadan alt sokete (newinet->inet_opt) aktarır. Başka bir CPU, aynı istek soketi için yeniden iletilen bir SYN paketini eşzamanlı olarak işleyebilir ve tcp_check_req() üzerinden bir SYNACK gönderebilir. tcp_v4_send_synack() ve inet_csk_route_req() fonksiyonları ireq->ireq_opt değerini yalnızca rcu_read_lock() altında okur; ardından ip_build_and_send_pkt() ve ip_options_build() fonksiyonları opt->optlen değerini iki kez okur. SYNACK zamanlayıcısının kendisinin bir sorun teşkil etmediğine dikkat edilmelidir: Zamanlayıcı, istek soketi üzerinde bir referans tutar ve inet_csk_reqsk_queue_drop(), alt soket serbest bırakılmadan önce timer_delete_sync() fonksiyonunu çağırır. 079096f103fa ("tcp/dccp: install syn_recv requests into ehash table") commit'inden beri, istek soketleri dinleyici kilidi (listener lock) tutulmadan işlenmektedir; bu nedenle SYNACK hala oluşturulurken alt soketin serbest bırakılmasını engelleyen hiçbir şey yoktur. TCP alt soketleri SOCK_RCU_FREE özelliğine sahip değildir ve inet_sock_destruct(), inet_opt'yi standart bir kfree() ile serbest bırakır, bu da ip_options_build() içerisinde bir serbest bırakıldıktan sonra kullanım (use-after-free) durumuna yol açar. Benzer bir sorun, istek soketi taşıma işlemiyle (net.ipv4.tcp_migrate_req=1 veya bir BPF_SK_REUSEPORT_SELECT_OR_MIGRATE programı) birlikte mevcuttur. reqsk_timer_handler(), istek soketini inet_reqsk_clone() ile klonlar, böylece eski istek soketi ve klonu aynı ireq_opt'yi paylaşır; ardından reqsk_migrate_reset() eski soketteki işaretçiyi temizler. Eski istek soketi üzerinde referans tutan başka bir CPU, klon serbest bırakıldığında hala bu seçenekleri kullanıyor olabilir (bir SYNACK gönderirken veya tcp_v4_syn_recv_sock() içinde bir alt soket oluştururken) ve tcp_v4_reqsk_destructor() da standart bir kfree() kullanmaktadır. Okuyucular halihazırda RCU kullanmakta olup, inet_opt'yi değiştiren diğer yollar (do_ip_setsockopt(), cipso_v4_sock_setattr()...) zaten kfree_rcu() kullanmaktadır. Benzer şekilde inet_sock_destruct() ve tcp_v4_reqsk_destructor() fonksiyonlarında da kfree_rcu() kullanılmalıdır. IPv6, tcp_v6_syn_recv_sock() seçenekleri çoğalttığı için ilk sorundan etkilenmemektedir. tcp_v6_reqsk_destructor(), yalnızca CALIPSO tarafından ayarlanan ipv6_opt ile aynı taşıma sorununa sahiptir. Bu durum ayrı bir yama ile ele alınacaktır.
Nasıl düzeltilir
- Linux Linuxb3b027ef0cd322bfa839b9aaf5b27551eea54cf6, 95a8c8fa9f27dce64c40c41c062de7728bf34ab5, 89b5b1eb7d633c33832b7ff2c02e19a144705036, 742f73df544e03744f2981c467d6542fe8172a2a, 11a03ce3c4a62d84c10ccdfe47f8075006498568, a47406c769f72c070386985488f1c4d057df86b2, 26d4c36d318cffbbd160884a0e4cec0da4da4936, e3f33b0a1d89d738e2b913dab519226eaf76e15b ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < b3b027ef0cd322bfa839b9aaf5b27551eea54cf6, 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < 95a8c8fa9f27dce64c40c41c062de7728bf34ab5, 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < 89b5b1eb7d633c33832b7ff2c02e19a144705036, 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < 742f73df544e03744f2981c467d6542fe8172a2a, 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < 11a03ce3c4a62d84c10ccdfe47f8075006498568, 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < a47406c769f72c070386985488f1c4d057df86b2, 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < 26d4c36d318cffbbd160884a0e4cec0da4da4936, 079096f103faca2dd87342cca6f23d4b34da8871 ≤ v < e3f33b0a1d89d738e2b913dab519226eaf76e15b, 4.4 | b3b027ef0cd322bfa839b9aaf5b27551eea54cf6, 95a8c8fa9f27dce64c40c41c062de7728bf34ab5, 89b5b1eb7d633c33832b7ff2c02e19a144705036, 742f73df544e03744f2981c467d6542fe8172a2a, 11a03ce3c4a62d84c10ccdfe47f8075006498568, a47406c769f72c070386985488f1c4d057df86b2, 26d4c36d318cffbbd160884a0e4cec0da4da4936, e3f33b0a1d89d738e2b913dab519226eaf76e15b |
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.