CVE-2026-80612
Açıklama
Linux kernel'de aşağıdaki güvenlik açığı giderilmiştir: net: lwtunnel: LWT kapsülleme öncesinde skb meta verilerini kaldırın skb meta verileri, XDP ve TC arasında bilgi aktarmak için kullanılır. Bu veriler, skb headroom içinde, hemen skb->data öncesinde yer alır. LWT programları, meta verilere yönelik __sk_buff->data_meta sözde işaretçisine erişemezler. Ancak, LWT kapsülleme işlemi dış başlıklar ekleyerek skb->data kısmını, meta verilerin bulunduğu headroom üzerine geri taşır. Hala XDP meta verilerini taşıyan bir RX kaynaklı (yönlendirilmiş) pakette, kapsülleme türüne bağlı olarak bu durum iki farklı şekilde hataya yol açar: 1. BPF tabanlı olmayan LWT kapsüllemeleri (mpls, seg6, ioam6 ...), skb_push()/skb_pull() fonksiyonlarını çağırarak headroom içindeki meta verilerin üzerine sessizce yazar. 2. BPF LWT iletimleri, skb_data_move() kullanan bpf_skb_change_head() fonksiyonunu çağırır. Bu yardımcı fonksiyon, meta verilerin hemen skb->data öncesinde olmasını bekler. Ancak IP çıkış yolu, komşu çıktısı giden L2 başlığını oluşturmadan önce LWT iletimini çalıştırdığından, yönlendirilen paketler için skb->data L3 başlığına işaret ederken skb_mac_header() hala eski L2 başlığına işaret etmektedir. skb_data_move() meta verilerin skb->data öncesinde değil, skb_mac_header() noktasında bittiğini görür, uyarı verir ve meta verileri temizler: WARNING: CPU: 21 PID: 454557 at include/linux/skbuff.h:4609 skb_data_move+0x47/0x90 CPU: 21 UID: 0 PID: 454557 Comm: napi/iconduit-g Tainted: G O 6.18.21 #1 RIP: 0010:skb_data_move+0x47/0x90 Call Trace: <IRQ> bpf_skb_change_head+0xe6/0x1a0 bpf_prog_...+0x213/0x2e3 run_lwt_bpf.isra.0+0x1d3/0x360 bpf_xmit+0x46/0xe0 lwtunnel_xmit+0xa1/0xf0 ip_finish_output2+0x1e7/0x5e0 ip_output+0x63/0x100 __netif_receive_skb_one_core+0x85/0xa0 process_backlog+0x9c/0x150 __napi_poll+0x2b/0x190 net_rx_action+0x40b/0x7f0 handle_softirqs+0xd2/0x270 do_softirq+0x3f/0x60 </IRQ> Yaşanan durum budur; çözümle ilgili olarak ise, meta veri taşıyan alınan bir paket üç LWT yeniden yönlendirme modundan herhangi biri aracılığıyla bir kapsüllemeye ulaşabilir: LWTUNNEL_STATE_INPUT_REDIRECT ip6_rcv_finish dst_input lwtunnel_input LWTUNNEL_STATE_OUTPUT_REDIRECT ip6_rcv_finish dst_input ip6_forward ip6_forward_finish dst_output lwtunnel_output LWTUNNEL_STATE_XMIT_REDIRECT ip6_rcv_finish dst_input ip6_forward ip6_forward_finish dst_output ip_output ip6_finish_output ip6_finish_output2 lwtunnel_xmit Her kapsülleme üç LWT dağıtım yardımcısı üzerinden geçer, dolayısıyla skb kapsülleme işlemine devredilmeden hemen önce meta veriler burada kaldırılır. Bu tek darboğaz noktası tüm kapsülleme türlerini ve her üç yeniden yönlendirme modunu da kapsar: - lwtunnel_input(): seg6, rpl, ila, seg6_local - lwtunnel_output(): ioam6 - lwtunnel_xmit(): mpls, LWT BPF xmit Alternatif olarak, meta veriler TC giriş kancasından (ingress hook) hemen sonra temizlenebilirdi. Ancak bu bir ödün gerektirirdi; meta veriler, TC çıkıştan (egress) erişilemez hale gelirdi (verinin bozulmadan kancaya ulaştığı, yani yolda hiçbir L2 tünelinin olmadığı kurulumlarda).
Nasıl düzeltilir
- Linux Linux19eec11f3ab5dd29ba58f5f209c24e946c95ef12, c00320b0e355c4bf0ae4743a53b4180fea237546 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 8989d328dfe7c7a3b9f4b9f0ef60006d277f81cc ≤ v < 19eec11f3ab5dd29ba58f5f209c24e946c95ef12, 8989d328dfe7c7a3b9f4b9f0ef60006d277f81cc ≤ v < c00320b0e355c4bf0ae4743a53b4180fea237546, 6.19 | 19eec11f3ab5dd29ba58f5f209c24e946c95ef12, c00320b0e355c4bf0ae4743a53b4180fea237546 |
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.