CVE-2022-49872

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: net: gso: karma başlık tahsis türlerine sahip frag_list üzerinde oluşan panik düzeltildi 3dcbdb134f32 ("net: gso: Fix skb_segment splat when splitting gso_size mangled skb having linear-headed frag_list") numaralı commit'ten beri, bir GRO paketinin gso_size değerini değiştirmek mümkün hale gelmiştir. Ancak söz konusu commit, "ilk list_skb üyesini kontrol etmenin yeterli olduğunu; yani eğer list_skb üyelerinden herhangi biri head_frag olmayan bir başlığa sahipse, ilk üyenin de öyle olması gerektiğini" varsaymaktadır. Bu varsayımın geçerli olmadığı ortaya çıkmıştır. vmxnet3 sürücüsü ile frag_list üzerindeki skb'lerin farklı head_frag değerlerine sahip olduğu durumlarda, skb_segment fonksiyonunda BUG_ON hatasının tetiklendiği görülmüştür. Bu durum, __netdev_alloc_skb ve __napi_alloc_skb fonksiyonlarının istenen boyuta bağlı olarak sayfa destekli veya kmalloc ile ayrılmış bir skb döndürebilmesinden kaynaklanmaktadır. Sonuç olarak, GRO paketindeki son küçük skb kmalloc ile ayrılmış olabilir. Bunun düzeltilebileceği üç farklı konum bulunmaktadır: (1) GRO aşamasında head_frag kontrol edilebilir ve farklı head_frag değerine sahip skb'lerin GRO işlemine alınmasına izin verilmeyebilir. Ancak bu durum, son pakette !head_frag olmasının sorun teşkil etmediği, değiştirilmemiş gso_size içeren normal yönlendirme yollarında performans kaybına yol açacaktır. (2) bpf_skb_net_grow ve bpf_skb_net_shrink fonksiyonlarında NETIF_F_SG'nin istenmeyen olduğunu belirten bir bayrak ayarlanabilir. Bu, sk_buff içinde bir bit kullanımı gerektirecektir. Ayrıca, frag_list üzerindeki tüm skb'ler sayfa destekli olduğunda bu bayrak kaldırılabilir. İyi performansı korumak için bpf_skb_net_grow/shrink fonksiyonlarının frag_list üzerinden geçmesi gerekecektir. (3) NETIF_F_SG bayrağının temizlenip temizlenmeyeceğine karar verirken skb_segment içerisinde frag_list üzerinden geçilebilir. Bu durum elbette işlemleri yavaşlatır. Bu yama (3) seçeneğini uygulamaktadır. skb_segment içerisindeki performans etkisini sınırlamak için liste, yalnızca SKB_GSO_DODGY bayrağı set edilmiş ve gso_size değeri değiştirilmiş olan skb'ler için taranmaktadır. Böylece normal yollar bu işleme takılmayacaktır. Sadece son skb kontrol edilebilirdi ancak zaten listenin tamamını taramamız gerektiğinden, güvenli tarafta kalmak tercih edilmiştir.

ÖnemYüksek
CVSS7.5
İstismar olasılığı—
ÜrünLinux Kernel
Yayın1 May 2025
İlk görülme1 May 2025

Nasıl düzeltilir

Güncelleyin
  • linux linux_kernel4.9.334, 4.14.300, 4.19.267, 5.3, 5.4.225, 5.10.155, 5.15.79, 6.0.9 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
linux linux_kernel4.9.194 ≤ v < 4.9.334, 4.14.145 ≤ v < 4.14.300, 4.19.74 ≤ v < 4.19.267, 5.2.16 ≤ v < 5.3, 5.3.1 ≤ v < 5.4.225, 5.5 ≤ v < 5.10.155, 5.11 ≤ v < 5.15.79, 5.16 ≤ v < 6.0.9, 5.3, 6.14.9.334, 4.14.300, 4.19.267, 5.3, 5.4.225, 5.10.155, 5.15.79, 6.0.9

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.

Intelligence 360 paketinde

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.