CVE-2024-36937
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: xdp: yayın yönlendirmesini ayırt etmek için flags alanı kullanılıyor Bir paket XDP kullanılarak yönlendirildiğinde, bpf_redirect_map() yardımcı fonksiyonu, struct bpf_redirect_info içerisindeki yönlendirme hedef bilgilerini ayarlar (__bpf_xdp_redirect_map() yardımcı fonksiyonunu kullanarak) ve XDP programı geri döndükten sonra xdp_do_redirect() fonksiyonu bu bilgileri okuyarak çerçeveyi doğru yönlendirme hedefine iletir. Tüm bir haritaya çoklu yayın yönlendirmesi yapmak için BPF_F_BROADCAST bayrağı kullanıldığında, __bpf_xdp_redirect_map(), struct bpf_redirect_info içindeki 'map' işaretçisini yayının yapılacağı hedef haritayı gösterecek şekilde ayarlar. xdp_do_redirect() ise bunun bir yayın mı yoksa tek değerli bir yönlendirme mi olduğuna karar vermek için bu map işaretçisinin değerine göre işlem yapar. Ancak, xdp_do_redirect() çağrılmadan önce hedef harita imha edilirse, herhangi bir XDP programının durması beklenmeden map işaretçisi (bpf_clear_redirect_map() tarafından) temizlenir. Bu durum, xdp_do_redirect()'in yönlendirmenin tek bir hedefe yapıldığını düşünmesine neden olur; fakat hedef işaretçisi de NULL olduğu için (yayın yönlendirmelerinin tek bir hedefi olmadığından), dev_map_enqueue() fonksiyonuna NULL işaretçi geçildiğinde sistem çöker. Bunu düzeltmek için, tek hedefli yönlendirme ile yayın yönlendirmesini birbirinden ayırt etmek amacıyla xdp_do_redirect(), struct bpf_redirect_info içindeki 'flags' değerinde BPF_F_BROADCAST bayrağının varlığına doğrudan tepki verecek şekilde değiştirilmiştir. Ayrıca 'map' işaretçisi yalnızca yayın bayrağı ayarlanmışsa okunur ve bu sırada işaretçi temizlenmişse işlem iptal edilir. Bu sayede, yayın dışı hızlı yola ek kontrol eklemeden ve map işaretçisinin atomik (cmpxchg tabanlı) temizleme işlemini koruyarak çökme önlenmiştir.
Nasıl düzeltilir
- linux linux_kernel5.15.159, 6.1.91, 6.6.31, 6.8.10 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| linux linux_kernel | 5.14 ≤ v < 5.15.159, 5.16 ≤ v < 6.1.91, 6.2 ≤ v < 6.6.31, 6.7 ≤ v < 6.8.10, 6.9 | 5.15.159, 6.1.91, 6.6.31, 6.8.10 |
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.