CVE-2026-74612
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: veth: XDP frag ayarı sonrası skb uzunluk hesaplaması düzeltildi veth, doğrusal olmayan skb parçalarını bir xdp_buff aracılığıyla sunar. Bir XDP programı parça alanını ayarlarsa, veth_xdp_rcv_skb() fonksiyonu xdp_frags_size değerini skb->data_len kısmına geri kopyalar ancak skb->len kısmında eski parça katkısının kalmasına neden olur. Bir parça küçültme işleminden sonra bu durum, skb_headlen()'in gerçek doğrusal alandan daha büyük olmasına yol açar. Yeniden üretilen UDP alma yolunda, __skb_datagram_iter() gerçek doğrusal kuyruğun 1024 bayt ötesinden başlayarak struct skb_shared_info üzerinden kullanıcı alanına veri kopyalamıştır. Kopyalanan baytlar etkilenen skb'nin nr_frags, xdp_frags_size ve skb_shinfo(skb)->frags[0] içerisindeki bir kernel işaretçisini içermekteydi. Gerçek paket verileri aynı miktarda kaymış ve sonunda kesilmiştir. Yeni data_len değerini yerleştirmeden önce eski data_len çıkarılarak ve sonrasında yeni data_len eklenerek skb->len ve skb->data_len senkronize tutulmuştur. Ek olarak, bpf_xdp_pull_data() parçalar mevcutken data_end değerini ilerletebilir. Bu durumda skb hala doğrusal değildir, dolayısıyla eski __skb_put(skb, off) çağrısı SKB_LINEAR_ASSERT() hatasını tetikler. Bunun yerine, bpf_prog_run_generic_xdp() işlemini takiben skb_set_tail_pointer() kullanılmış ve skb->len açıkça güncellenmiştir. __skb_put()'ın aksine, skb_set_tail_pointer() doğrusal bir skb gerektirmez. MTU değeri 64000 olan bir veth çiftinde 60000 baytlık bir UDP datagramı, parça alanından 1024 bayt kısaltılmıştır. Düzeltmeden önce yapılan tüm 10 deneme bozuk yükler (payload) üretmiştir. Düzeltmeden sonra ise tüm 10 deneme beklenen yükle tam olarak eşleşmiştir. Zorlanmış bir tailroom yeniden üretim testi ayrıca parçalar hala mevcutken bpf_xdp_pull_data() fonksiyonunu çalıştırır; eski kod SKB_LINEAR_ASSERT() hatasını tetiklerken, bu düzeltme 10/10 denemeyi başarıyla tamamlamaktadır.
Nasıl düzeltilir
- Linux Linux0c3024afabb8064b141f3cedcb1ddd6ab05ad9d5, 2f2a7f3f8b9f1bffc9b0488aa02b6951b2aec139, 41b96667d42b74bb4b137f1bb78b611a953c5943, cdf745b7a777f87f51666e5d8f4c6fc279bcf54d, 3205b0652a37255dbb7ca8f3d942c8d8aa677c21, cb6379feaaff11c4e1e79c26c745ffa23182768a ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | 718a18a0c8a67f97781e40bdef7cdd055c430996 ≤ v < 0c3024afabb8064b141f3cedcb1ddd6ab05ad9d5, 718a18a0c8a67f97781e40bdef7cdd055c430996 ≤ v < 2f2a7f3f8b9f1bffc9b0488aa02b6951b2aec139, 718a18a0c8a67f97781e40bdef7cdd055c430996 ≤ v < 41b96667d42b74bb4b137f1bb78b611a953c5943, 718a18a0c8a67f97781e40bdef7cdd055c430996 ≤ v < cdf745b7a777f87f51666e5d8f4c6fc279bcf54d, 718a18a0c8a67f97781e40bdef7cdd055c430996 ≤ v < 3205b0652a37255dbb7ca8f3d942c8d8aa677c21, 718a18a0c8a67f97781e40bdef7cdd055c430996 ≤ v < cb6379feaaff11c4e1e79c26c745ffa23182768a, 5.18 | 0c3024afabb8064b141f3cedcb1ddd6ab05ad9d5, 2f2a7f3f8b9f1bffc9b0488aa02b6951b2aec139, 41b96667d42b74bb4b137f1bb78b611a953c5943, cdf745b7a777f87f51666e5d8f4c6fc279bcf54d, 3205b0652a37255dbb7ca8f3d942c8d8aa677c21, cb6379feaaff11c4e1e79c26c745ffa23182768a |
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.