CVE-2026-90059
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net: stmmac: RX DMA offset-ində NET_IP_ALIGN bərpa edildi RX yolu zero-copy-yə çevrildiyi üçün səhifə hovuzu (page pool) səhifəsi birbaşa skb başlığı kimi stekə ötürülür və DMA mühərrikinin yazdığı offset paket başlıqlarının düzülüşünü (alignment) müəyyən edir. Çevrilmədən əvvəl faydalı yük napi_alloc_skb()-dən alınan və NET_SKB_PAD + NET_IP_ALIGN rezerv edən skb-yə kopyalanırdı. Çevrilmə zamanı headroom stmmac_rx_offset()-ə köçürüldü, lakin NET_IP_ALIGN köçürülmədi, buna görə də NET_IP_ALIGN-ın 2 olduğu arxitekturalarda IP başlığı artıq yanlış düzülmüş şəkildə yerləşir: 64 (NET_SKB_PAD) + 14 (ethernet) + 20 (IP) = 98 Eyni hal XDP budağı üçün də keçərlidir: 256 (XDP_PACKET_HEADROOM) + 14 (ethernet) + 20 (IP) = 290 ARM32-də bu kritikdir, çünki CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS təyin edilsə belə, ldm və ldrd təlimatları düzülməmiş ünvanlarda xəta verir. İstənilən qəbul edilmiş echo sorğusu maşını panikaya salır, məsələn: Unhandled fault: alignment exception (0x001) at 0x81873062 Internal error: : 1 [#1] SMP ARM Hardware name: Altera SOCFPGA Arria10 PC is at icmp_echo+0x38/0xa8 LR is at icmp_rcv+0x22c/0x370 Call trace: icmp_echo from icmp_rcv+0x22c/0x370 icmp_rcv from ip_protocol_deliver_rcu+0x2c/0x224 ip_protocol_deliver_rcu from ip_local_deliver+0xc8/0x1a0 ip_local_deliver from ip_sublist_rcv_finish+0x3c/0x50 ip_sublist_rcv_finish from ip_list_rcv_finish+0x110/0x118 ip_list_rcv_finish from ip_list_rcv+0xc8/0xdc ip_list_rcv from __netif_receive_skb_list_core+0x170/0x1c0 ... napi_complete_done from stmmac_napi_poll_rx+0xcb0/0x1030 Code: e24dd068 e59020a0 e28dc010 e0822001 (e8920003) Kernel panic - not syncing: Fatal exception in interrupt Səhvə səbəb olan təlimat icmp_echo() funksiyasındakı *icmp_hdr(skb)-nin ldm təlimatıdır. Problem, NET_IP_ALIGN-ın yenidən RX offset-ə əlavə edilməsi ilə həll edilir ki, bu da stekin əvvəllər istifadə etdiyi düzülüşü bərpa edir. Qeyd edək ki, a955318fe67e ("stmmac: align RX buffers") commit-i 2021-ci ildə oxşar dəyişiklik etmişdi və paketlərin korlanmasına səbəb olduğu üçün 12d125b4574b ("stmmac: Revert "stmmac: align RX buffers"") commit-i ilə geri qaytarılmışdı. Həmin yamaq bufer ölçüsü hesablamalarını tənzimləmədən offset-i 0-dan artırmışdı, buna görə də DMA mühərriki RX buferlərinin sonundan kənara yaza bilərdi, lakin bunun kök səbəbi heç vaxt tam müəyyən edilməmişdi. df542f669307 ("net: stmmac: Switch to zero-copy in non-XDP RX path") commit-i isə səhifə hovuzunun ayrılmasını stmmac_rx_offset()-dən törədir, buna görə də əlavə baytlar nəzərə alınır.
Necə düzəltmək olar
- Linux Linux2ea42936416b29cca42b2c7bc7d3d3768f77c199, c0d3f9560cc890bc2d96d9f487584688ae6e5185, 23680bf5f8c69c923546b84a8e6c401bef8b88fe və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| Linux Linux | df542f669307918f054a17878ff6dd1ddbb2fe18 ≤ v < 2ea42936416b29cca42b2c7bc7d3d3768f77c199, df542f669307918f054a17878ff6dd1ddbb2fe18 ≤ v < c0d3f9560cc890bc2d96d9f487584688ae6e5185, df542f669307918f054a17878ff6dd1ddbb2fe18 ≤ v < 23680bf5f8c69c923546b84a8e6c401bef8b88fe, 6.14 | 2ea42936416b29cca42b2c7bc7d3d3768f77c199, c0d3f9560cc890bc2d96d9f487584688ae6e5185, 23680bf5f8c69c923546b84a8e6c401bef8b88fe |
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.