CVE-2026-90059
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: net: stmmac: RX DMA offset değerinde NET_IP_ALIGN geri yüklendi RX yolu sıfır kopyalamaya (zero-copy) dönüştürüldüğünden, sayfa havuzu sayfası doğrudan skb başlığı olarak yığına iletilir ve DMA motorunun yazdığı offset, paket başlıklarının hizalamasını belirler. Dönüşümden önce yük, napi_alloc_skb() aracılığıyla elde edilen ve NET_SKB_PAD + NET_IP_ALIGN rezerv eden bir skb'ye kopyalanıyordu. Dönüşüm, headroom kısmını stmmac_rx_offset() fonksiyonuna taşıdı ancak NET_IP_ALIGN değerini aktarmadı; bu nedenle NET_IP_ALIGN değerinin 2 olduğu mimarilerde IP başlığı artık yanlış hizalanmaktadır: 64 (NET_SKB_PAD) + 14 (ethernet) + 20 (IP) = 98 Aynı durum XDP dalı için de geçerlidir: 256 (XDP_PACKET_HEADROOM) + 14 (ethernet) + 20 (IP) = 290 ARM32 üzerinde bu durum ölümcüldür çünkü CONFIG_HAVE_EFFICIENT_UNALIGNED_ACCESS ayarlı olsa bile ldm ve ldrd komutları hizalanmamış adreslerde hata verir. Alınan herhangi bir echo isteği makinenin paniklemesine neden olur, örneğin: 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 Hataya neden olan talimat, icmp_echo() içerisindeki *icmp_hdr(skb) işleminin ldm komutudur. Yığının daha önce aldığı hizalamayı yeniden sağlamak için NET_IP_ALIGN değeri RX offset'ine tekrar eklenerek sorun giderilmiştir. a955318fe67e ("stmmac: align RX buffers") commit'inin 2021 yılında benzer bir değişiklik yaptığı ve paket bozulmasına neden olduğu için 12d125b4574b ("stmmac: Revert "stmmac: align RX buffers"") commit'i ile geri alındığı unutulmamalıdır. Söz konusu yama, tampon boyutu hesaplamasını ayarlamadan offset değerini 0'dan yükseltmişti, bu nedenle DMA motoru tartışmalı bir şekilde RX tamponlarının sonunun ötesine yazabiliyordu, ancak bunun kök nedeni hiçbir zaman tespit edilmedi. df542f669307 ("net: stmmac: Switch to zero-copy in non-XDP RX path") commit'i ise sayfa havuzu tahsisini stmmac_rx_offset() üzerinden türettiğinden, ekstra baytlar hesaba katılmıştır.
Nasıl düzeltilir
- Linux Linux2ea42936416b29cca42b2c7bc7d3d3768f77c199, c0d3f9560cc890bc2d96d9f487584688ae6e5185, 23680bf5f8c69c923546b84a8e6c401bef8b88fe ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | df542f669307918f054a17878ff6dd1ddbb2fe18 ≤ v < 2ea42936416b29cca42b2c7bc7d3d3768f77c199, df542f669307918f054a17878ff6dd1ddbb2fe18 ≤ v < c0d3f9560cc890bc2d96d9f487584688ae6e5185, df542f669307918f054a17878ff6dd1ddbb2fe18 ≤ v < 23680bf5f8c69c923546b84a8e6c401bef8b88fe, 6.14 | 2ea42936416b29cca42b2c7bc7d3d3768f77c199, c0d3f9560cc890bc2d96d9f487584688ae6e5185, 23680bf5f8c69c923546b84a8e6c401bef8b88fe |
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.
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.