CVE-2026-31419
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net: bonding: bond_xmit_broadcast() funksiyasında use-after-free xətası düzəldildi bond_xmit_broadcast() sonuncu slave üçün (bond_is_last_slave() vasitəsilə müəyyən edilir) orijinal skb-ni yenidən istifadə edir və digərləri üçün onu klonlayır. Eyni vaxtda baş verən slave enslave/release əməliyyatları RCU ilə qorunan iterasiya zamanı slave siyahısını dəyişdirə bilər ki, bu da dövrün ortasında hansı slave-in "sonuncu" olduğunu dəyişir. Bu, orijinal skb-nin iki dəfə istehlak edilməsinə (iki dəfə azad edilməsinə - double-freed) səbəb olur. Yarış vəziyyətinə (race condition) meyilli olan bond_is_last_slave() yoxlamasını, dövrdən əvvəl READ_ONCE() vasitəsilə götürülmüş snapshot slave sayı ilə sadə indeks müqayisəsi (i + 1 == slaves_count) ilə əvəz edin. Bu, sonuncu slave üçün zero-copy optimallaşdırılmasını qoruyur və eyni zamanda "sonuncu"nun təyinini paralel siyahı mutasiyalarına qarşı stabil edir. UAF aşağıdakı çöküşü tetikləyə bilər: ================================================================== BUG: KASAN: slab-use-after-free in skb_clone Read of size 8 at addr ffff888100ef8d40 by task exploit/147 CPU: 1 UID: 0 PID: 147 Comm: exploit Not tainted 7.0.0-rc3+ #4 PREEMPTLAZY Call Trace: <TASK> dump_stack_lvl (lib/dump_stack.c:123) print_report (mm/kasan/report.c:379 mm/kasan/report.c:482) kasan_report (mm/kasan/report.c:597) skb_clone (include/linux/skbuff.h:1724 include/linux/skbuff.h:1792 include/linux/skbuff.h:3396 net/core/skbuff.c:2108) bond_xmit_broadcast (drivers/net/bonding/bond_main.c:5334) bond_start_xmit (drivers/net/bonding/bond_main.c:5567 drivers/net/bonding/bond_main.c:5593) dev_hard_start_xmit (include/linux/netdevice.h:5325 include/linux/netdevice.h:5334 net/core/dev.c:3871 net/core/dev.c:3887) __dev_queue_xmit (include/linux/netdevice.h:3601 net/core/dev.c:4838) ip6_finish_output2 (include/net/neighbour.h:540 include/net/neighbour.h:554 net/ipv6/ip6_output.c:136) ip6_finish_output (net/ipv6/ip6_output.c:208 net/ipv6/ip6_output.c:219) ip6_output (net/ipv6/ip6_output.c:250) ip6_send_skb (net/ipv6/ip6_output.c:1985) udp_v6_send_skb (net/ipv6/udp.c:1442) udpv6_sendmsg (net/ipv6/udp.c:1733) __sys_sendto (net/socket.c:730 net/socket.c:742 net/socket.c:2206) __x64_sys_sendto (net/socket.c:2209) do_syscall_64 (arch/x86/entry/syscall_64.c:63 arch/x86/entry/syscall_64.c:94) entry_SYSCALL_64_after_hwframe (arch/x86/entry/entry_64.S:130) </TASK> Allocated by task 147: Freed by task 147: The buggy address belongs to the object at ffff888100ef8c80 which belongs to the cache skbuff_head_cache of size 224 The buggy address is located 192 bytes inside of freed 224-byte region [ffff888100ef8c80, ffff888100ef8d60) Memory state around the buggy address: ffff888100ef8c00: fb fb fb fb fc fc fc fc fc fc fc fc fc fc fc fc ffff888100ef8c80: fa fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb >ffff888100ef8d00: fb fb fb fb fb fb fb fb fb fb fb fb fc fc fc fc ^ ffff888100ef8d80: fc fc fc fc fc fc fc fc fa fb fb fb fb fb fb fb ffff888100ef8e00: fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb fb ==================================================================
Necə düzəltmək olar
- linux linux_kernel5.11, 5.16, 5.17, 6.12.86, 6.18.22, 6.19.12 və ya daha yeni versiya
- access.redhat.com/errata/RHSA-2026:22334
- access.redhat.com/errata/RHSA-2026:13566
- access.redhat.com/errata/RHSA-2026:25191
- access.redhat.com/errata/RHSA-2026:22940
- access.redhat.com/errata/RHSA-2026:21209
- access.redhat.com/errata/RHSA-2026:23224
- access.redhat.com/errata/RHSA-2026:25217
- access.redhat.com/errata/RHSA-2026:35870
- access.redhat.com/errata/RHSA-2026:27353
- access.redhat.com/errata/RHSA-2026:36530
- access.redhat.com/errata/RHSA-2026:19521
- access.redhat.com/errata/RHSA-2026:36531
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| linux linux_kernel | 5.10.94 ≤ v < 5.11, 5.15.17 ≤ v < 5.16, 5.16.3 ≤ v < 5.17, 5.17 ≤ v < 6.12.86, 6.13 ≤ v < 6.18.22, 6.19 ≤ v < 6.19.12, 7.0 | 5.11, 5.16, 5.17, 6.12.86, 6.18.22, 6.19.12 |
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.
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.