CVE-2026-64436

Yüksek

Açıklama

Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net: af_key: IPComp durumları için alg_key_len başlatılıyor pfkey_msg2xfrm_state() fonksiyonu, x->calg ayırarak ve yalnızca algoritma adını kopyalayarak IPComp (SADB_X_SATYPE_IPCOMP) durumunu işler: x->calg = kmalloc_obj(*x->calg); if (!x->calg) { err = -ENOMEM; goto out; } strcpy(x->calg->alg_name, a->name); x->props.calgo = sa->sadb_sa_encrypt; Aynı fonksiyonun kimlik doğrulama (x->aalg) ve şifreleme (x->ealg) dallarının aksine, sıkıştırma dalı hiçbir zaman calg->alg_key_len değerini başlatmaz. IPComp herhangi bir anahtar taşımaz ve tahsisat yalnızca sizeof(struct xfrm_algo) kadar yer ayırır (yani anahtar için yer yoktur), bu nedenle alan başlatılmamış slab verilerini içermeye devam eder. calg->alg_key_len daha sonra, XFRM_MSG_MIGRATE sırasında bir IPComp durumu klonlandığında xfrm_algo_clone() tarafından uzunluk olarak kullanılır: xfrm_state_migrate() xfrm_state_clone_and_setup() x->calg = xfrm_algo_clone(orig->calg); kmemdup(orig, xfrm_alg_len(orig)); Burada xfrm_alg_len(), sizeof(*alg) + (alg_key_len + 7) / 8 değerini döndürür. Sıfır olmayan rastgele bir alg_key_len değeri ile kmemdup(), 68 baytlık calg nesnesinin sonunun ötesini okur. PF_KEY aracılığıyla bir IPComp SA eklemek ve ardından bunu migrate etmek şu hatayı tetikler (net-next, KASAN, init_on_alloc=0): BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x44/0x60 Read of size 4164 at addr ff11000025a74980 by task diag2/9287 CPU: 3 UID: 0 PID: 9287 Comm: diag2 7.1.0-rc6-g903db046d557 #1 Call Trace: <TASK> dump_stack_lvl+0x10e/0x1f0 print_report+0xf7/0x600 kasan_report+0xe4/0x120 kasan_check_range+0x105/0x1b0 __asan_memcpy+0x23/0x60 kmemdup_noprof+0x44/0x60 xfrm_state_migrate+0x70a/0x1da0 xfrm_migrate+0x753/0x18a0 xfrm_do_migrate+0xb47/0xf10 xfrm_user_rcv_msg+0x411/0xb50 netlink_rcv_skb+0x158/0x420 xfrm_netlink_rcv+0x71/0x90 netlink_unicast+0x584/0x850 netlink_sendmsg+0x8b0/0xdc0 ____sys_sendmsg+0x9f7/0xb90 ___sys_sendmsg+0x134/0x1d0 __sys_sendmsg+0x16d/0x220 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f </TASK> Allocated by task 9287: kasan_save_stack+0x33/0x60 kasan_save_track+0x14/0x30 __kasan_kmalloc+0xaa/0xb0 pfkey_add+0x2652/0x2ea0 pfkey_process+0x6d0/0x830 pfkey_sendmsg+0x42c/0x850 __sys_sendto+0x461/0x4b0 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x116/0x7d0 entry_SYSCALL_64_after_hwframe+0x77/0x7f The buggy address belongs to the object at ff11000025a74980 which belongs to the cache kmalloc-96 of size 96 The buggy address is located 0 bytes inside of allocated 68-byte region [ff11000025a74980, ff11000025a749c4) Başlatılmamış değere bağlı olarak aynı alan bunun yerine aşırı büyük bir kmemdup() tahsisi talep edebilir ve migrasyon klonlamasının başarısız olmasına neden olabilir. XFRM netlink yolu etkilenmemiştir: verify_one_alg(), xfrm_alg_len()'den kısa olan bir XFRMA_ALG_COMP niteliğini reddeder, böylece XFRM_MSG_NEWSA aracılığıyla eklenen bir calg her zaman kendi içinde tutarlıdır. aalg/ealg dallarıyla uyumlu olacak şekilde calg->alg_key_len değeri 0 olarak başlatılmıştır.

ÖnemYüksek
CVSS7.1
İstismar olasılığı—
ÜrünLinux Kernel
Yayın25 Tem 2026
İlk görülme25 Tem 2026

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, 6.18.39, 7.1.4 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel2.6.21 ≤ v < 5.10.261, 5.11 ≤ v < 5.15.212, 5.16 ≤ v < 6.1.178, 6.2 ≤ v < 6.6.145, 6.7 ≤ v < 6.12.96, 6.13 ≤ v < 6.18.39, 6.19 ≤ v < 7.1.45.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, 6.18.39, 7.1.4

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.