CVE-2026-46116

Yüksek

Açıklama

Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: xfrm: __xfrm_state_delete içinde xfrm_state listelerini savunmacı biçimde hash'ten çıkar KASAN, linux-6.12.y kararlı sürümünde syzkaller yükü altında __xfrm_state_delete() içindeki hlist_del_rcu çağrılarında bir slab-use-after-free durumunu yeniden üretmektedir (6.12.47 üzerinde yeniden üretilmiş, aynı kod yoluyla torvalds/master ve ipsec ağacında da erişilebilir). Dokuz benzersiz imza xfrm_state yaşam döngüsünde kümelenmekte olup, yükü taşıyan imza şudur: BUG: KASAN: slab-use-after-free in __hlist_del include/linux/list.h:990 [inline] BUG: KASAN: slab-use-after-free in hlist_del_rcu include/linux/rculist.h:516 [inline] BUG: KASAN: slab-use-after-free in __xfrm_state_delete net/xfrm/xfrm_state.c Write of size 8 at addr ffff8881198bcb70 by task kworker/u8:9/435 Workqueue: netns cleanup_net Call Trace: __hlist_del / hlist_del_rcu __xfrm_state_delete xfrm_state_delete xfrm_state_flush xfrm_state_fini ops_exit_list cleanup_net Gözlemlenen diğer imzalar, __xfrm_state_lookup, xfrm_alloc_spi, __xfrm_state_insert ve __xfrm_state_delete'in bir OOB yazma varyantından aynı slab nesnesine çarpmakta olup, hepsi byseq/byspi hash zincirleri üzerindedir. __xfrm_state_delete(), byseq ve byspi hash'ten çıkarmalarını değer tabanlı koşullarla korumaktadır: if (x->km.seq) hlist_del_rcu(&x->byseq); if (x->id.spi) hlist_del_rcu(&x->byspi); oysa dosyanın geri kalan her yerinde (ör. state_cache, state_cache_input) daha güvenli olan hlist_unhashed() kontrolü kullanılmaktadır. xfrm_alloc_spi(), xfrm_state_lock içinde x->id.spi = newspi atamasını yapar ve hemen ardından byspi'ye ekler; ancak x->id.spi != 0 değerini xfrm_state_lock dışında gözlemleyen bir yol, x'in gerçekte listede olup olmadığıyla tutarsız biçimde byspi hash'ten çıkarmasını atlayabilir veya gerçekleştirebilir. Aynı durum x->km.seq ile byseq için de geçerlidir ve bydst/bysrc hash'ten çıkarmalarının hiçbir koşulu yoktur; bu nedenle aynı nesne üzerinde ikinci bir __xfrm_state_delete() çağrısı LIST_POISON pprev üzerinden yazma yapar. Buradaki savunmacı değişiklik: - bydst, bysrc, byseq ve byspi üzerinde hlist_del_rcu() yerine hlist_del_init_rcu() kullanır; böylece ikinci bir silme işlemi LIST_POISON pprev üzerinden yazma yerine etkisiz bir işlem olur. byseq/byspi düğümleri zaten xfrm_state_alloc() içinde başlatılmaktadır. - byseq/byspi için değer koşulu yerine hlist_unhashed() testi yapar; böylece hash'ten çıkarma kararı değişebilir skaler alanlar yerine liste durumunu izler. Ampirik doğrulama: bu yama v6.12.47 üzerine uygulanmış, yeniden derlenmiş ve daha önce çöken ve xfrm_alloc_spi içinde Read / __xfrm_state_lookup içinde Read / __xfrm_state_delete içinde Write olmak üzere her birinden ~100 isabet üreten bir yapılandırmada aynı syzkaller koşum takımı 1s16d boyunca yeniden çalıştırılmıştır. Yama sonrasında, 32 VM üzerinde ~1550 exec/sn hızında 7,1M exec, sıfır xfrm_state UAF/OOB isabeti üretmiştir. /proc/slabinfo, xfrm_state slab'ının çalışma sırasında etkin biçimde tahsis edilip serbest bırakıldığını doğrulamaktadır (~143 KiB yerleşik), yani fuzzer bu kod yollarını hâlâ çalıştırmaktadır -- yalnızca artık çökmemektedirler. Yeniden üretim: - Linux 6.12.47 x86_64 + KASAN_GENERIC + KASAN_INLINE + KCOV - syzkaller @ 746545b8b1e4c3a128db8652b340d3df90ce61db - AWS c5.metal çıplak metal üzerinde 32 QEMU/KVM VM x 2 vCPU - ~9 saat içinde toplanan 9 benzersiz imza, hepsi xfrm_state yaşam döngüsü içinde

Ö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_kernel2.6.19 ≤ v < 5.15.210, 5.16 ≤ v < 6.1.176, 6.2 ≤ v < 6.6.140, 6.7 ≤ v < 6.12.88, 6.13 ≤ v < 6.18.30, 6.19 ≤ v < 7.0.7, 7.15.15.210, 6.1.176, 6.6.140, 6.12.88, 6.18.30, 7.0.7

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