CVE-2026-64450

Kritik

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: tipc: broadcast Gap ACK bloklarındaki sınır dışı okuma hatası düzeltildi Bir broadcast PROTOCOL/STATE_MSG, veri alanında bir Gap ACK blokları kaydı taşıyabilir. tipc_get_gap_ack_blks() yalnızca kaydın len alanının ugack_cnt/bgack_cnt sayımlarıyla tutarlı olduğunu doğrular (sz == struct_size(p, gacks, ugack_cnt + bgack_cnt)); ancak kaydın mesaj veri alanı olan msg_data_sz() içerisine gerçekten sığdığını kontrol etmez. Unicast çağırıcısı tipc_link_proto_rcv() bunu sınırlar ("if (glen > dlen) break;"), fakat broadcast çağırıcısı tipc_bcast_sync_rcv() döndürülen boyutu göz ardı eder, bu nedenle tipc_link_advance_transmq() saldırgan tarafından kontrol edilen bir sayım ile kaydı alıcı skb üzerinden kopyalar: this_ga = kmemdup(ga, struct_size(ga, gacks, ga->bgack_cnt), GFP_ATOMIC); TIPC_GAP_ACK_BLOCK üzerinde anlaşmış bir TIPC komşusu, veri alanı kısa olacak şekilde boyutlandırılmış ve len = 0x400, bgack_cnt = 0xff ve ugack_cnt = 0 değerlerine sahip bir Gap ACK kaydı taşıyan sıradan bir broadcast STATE_MSG (msg_bc_ack_invalid() temiz) ile bu durumu tetikler. Bu durumda len değeri struct_size(p, gacks, 255) değerine eşit olur, böylece tutarlılık kontrolü geçer ve ga NULL olmaz; kmemdup(), çok daha küçük olan skb üzerinden struct_size(ga, gacks, 255) = 1024 bayt okur: BUG: KASAN: slab-out-of-bounds in kmemdup_noprof+0x48/0x60 Read of size 1024 at addr ffff0000c7030d38 by task poc864/69 Call trace: kmemdup_noprof+0x48/0x60 tipc_link_advance_transmq+0x86c/0xb80 tipc_link_bc_ack_rcv+0x19c/0x1e0 tipc_bcast_sync_rcv+0x1c4/0x2c4 tipc_rcv+0x85c/0x1340 tipc_l2_rcv_msg+0xac/0x104 The buggy address belongs to the object at ffff0000c7030d00 which belongs to the cache skbuff_small_head of size 704 The buggy address is located 56 bytes inside of allocated 704-byte region [ffff0000c7030d00, ffff0000c7030fc0) Kopyalanan baytlar daha sonra gap/ack değerleri olarak tüketilir, ancak nasıl kullanıldıklarından bağımsız olarak kmemdup() aşamasında okuma işlemi zaten sınırların dışına çıkmıştır. Unicast STATE yolu böyle bir mesajı düşürür: "if (glen > dlen) break;" ifadesi STATE_MSG işleminin geri kalanını atlar ve skb serbest bırakılır. Broadcast yolunun da aynı şekilde davranması sağlanmıştır. tipc_bcast_sync_rcv() artık kaydı msg_data_sz() değerine göre sınırlar ve kayıt sığmadığında, skb işlenmek yerine atılması için tipc_node_bc_sync_rcv() aracılığıyla tipc_rcv()'ye raporlar. Bu yolda ga temizlenmez: ga == NULL olması zaten "Selective ACK özelliği olmayan eski eş" anlamına gelir ki bu ayrı ve meşru bir durumdur.

ÖnemKritik
CVSS9.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_kernel5.8 ≤ 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.4, 7.25.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.

CVE-2026-64450 · Linux Kernel · Dark Radar