CVE-2026-64450

Kritik

Təsvir

Linux nüvəsində aşağıdakı zəiflik aradan qaldırılıb: tipc: broadcast Gap ACK bloklarında sərhədləri aşan oxuma xətası düzəldildi Broadcast PROTOCOL/STATE_MSG məlumat sahəsində Gap ACK blocks yazısını daşıya bilər. tipc_get_gap_ack_blks() funksiyası yalnız yazının len sahəsinin onun ugack_cnt/bgack_cnt sayları ilə daxili uyğunluğunu yoxlayır (sz == struct_size(p, gacks, ugack_cnt + bgack_cnt)); lakin yazının faktiki olaraq mesajın məlumat sahəsinə, msg_data_sz(), sığışdığını yoxlamır. Unicast çağırıcısı olan tipc_link_proto_rcv() bunu məhdudlaşdırır ("if (glen > dlen) break;"), lakin broadcast çağırıcısı olan tipc_bcast_sync_rcv() qaytarılan ölçünü nəzərə almır, buna görə də tipc_link_advance_transmq() hücum edən tərəfindən idarə olunan sayla yazını qəbul edilən skb-dən kopyalayır: this_ga = kmemdup(ga, struct_size(ga, gacks, ga->bgack_cnt), GFP_ATOMIC); TIPC_GAP_ACK_BLOCK razılaşdıran bir TIPC qonşusu, məlumat sahəsi kiçik olan və len = 0x400, bgack_cnt = 0xff və ugack_cnt = 0 olan Gap ACK yazısı daşıyan adi bir broadcast STATE_MSG (msg_bc_ack_invalid() təmizdir) vasitəsilə bunu tetikləyir. Bu zaman len dəyəri struct_size(p, gacks, 255)-ə bərabər olur, beləliklə uyğunluq yoxlamasından keçir və ga NULL olmur; kmemdup() funksiyası çox daha kiçik olan skb-dən struct_size(ga, gacks, 255) = 1024 baytı oxuyur: 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) Kopyalanmış baytlar sonradan gap/ack dəyərləri kimi istifadə olunur, lakin onların necə istifadə edilməsindən asılı olmayaraq, kmemdup() zamanı oxuma artıq sərhədləri aşmış olur. Unicast STATE yolu belə bir mesajı rədd edir: "if (glen > dlen) break;" ifadəsi STATE_MSG emalının qalan hissəsini ötürür və skb azad edilir. Broadcast yolunun da bunu rədd etməsi təmin edildi. Artıq tipc_bcast_sync_rcv() yazını msg_data_sz() ilə müqayisə edərək məhdudlaşdırır və yazı sığmadıqda, skb-nin emal edilməsi əvəzinə atılması üçün tipc_node_bc_sync_rcv() vasitəsilə tipc_rcv()-ə geri bildirir. Bu yolda ga sıfırlanmır: ga == NULL artıq "Selective ACK olmadan köhnə peer" deməkdir ki, bu da ayrı bir legitim vəziyyətdir.

CiddilikKritik
CVSS9.1
İstismar ehtimalı—
MəhsulLinux Kernel
Dərc25 iyl 2026
İlk görülmə25 iyl 2026

Necə düzəltmək olar

Yeniləyin
  • linux linux_kernel5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, 6.18.39, 7.1.4 və ya daha yeni versiya

Təsirlənən məhsullar

MəhsulTəsirlənən versiyalarDüzəldildiyi versiya
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

Versiyanızı yoxlayın

Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.

Intelligence 360 paketində

Attack Surface Management

Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.

CVE-2026-64450 · Linux Kernel · Dark Radar