CVE-2026-74560
Açıklama
Linux çekirdeğinde aşağıdaki güvenlik açığı giderilmiştir: xsk: AF_XDP çok arabellekli Tx için xsk_drop_skb() içindeki arabellek sızıntısını düzelt Bu yama, sashiko'dan gelen kontrol[1] tarafından esinlenmiştir. Taşma meydana geldiğinde, yayımlanacak cq adresinin geçersiz olduğunu belirtir. Aslında daha ciddi olan şey, bu özel durumda cq adresini yayımlama sürecinin tamamının doğru olmamasıdır: txq'dan tanımlayıcılar okunduğu sürece adresi gerçekten yayımlamalı ve cq içindeki cached_prod değerini ilerletmelidir. Aşağıda tam analiz yer almaktadır. xsk_drop_skb(), hepsi kısmen oluşturulmuş çok arabellekli bir skb'yi atan üç yerde çağrılır: 1) xsk_build_skb() -EOVERFLOW hata yolu: paket MAX_SKB_FRAGS değerini aşar 2) __xsk_generic_xmit() döngü sonrası temizlik: TX halkasındaki geçersiz bir tanımlayıcı, kısmi paketin tamamlanmasını engeller 3) xsk_release(): xs->skb tamamlanmamış bir paket tutarken soketin kapatılması Her üç durumda da, zaten işlenmiş frag'ların TX tanımlayıcıları TX halkasından tüketilmiştir (xskq_cons_release) ve CQ yuvaları ayrılmıştır. Ancak xsk_drop_skb(), xsk_cq_cancel_locked() aracılığıyla CQ rezervasyonlarını iptal eden xsk_consume_skb() çağrısında bulunur. Arabellek adresleri tamamlama kuyruğunda hiçbir zaman görünmediğinden, kullanıcı alanı bu arabelleklerin izini kalıcı olarak kaybeder. Bunu, consume_skb() çağrısının, arabellek adreslerini zaten xsk_cq_submit_addr_locked() aracılığıyla CQ'ya gönderen mevcut xsk_destruct_skb yıkıcısını tetiklemesine izin vererek düzeltin. Tanımlayıcıları TX halkasına geri iptal etmenin (xskq_cons_cancel_n aracılığıyla) uygun bir seçenek olmadığını unutmayın; çünkü her zaman MAX_SKB_FRAGS değerini aşan aşırı büyük bir paket süresiz olarak yeniden denenecek ve bu da TX yolunda açıkça bir kilitlenme hatası olacaktır. Ayrıca, xsk_build_skb() içindeki desc->addr atamasını taşma kontrolünün üzerine taşıyın; böylece mevcut tanımlayıcının adresi, free_err'e olası bir -EOVERFLOW atlamasından önce kaydedilir ve xsk_build_skb_zerocopy() içindeki zerocopy yoluyla tutarlı olur. [1]: https://lore.kernel.org/all/[email protected]/
Nasıl düzeltilir
- Linux Linuxc24b3379c0ff00101b9ede54d36f7138d8a02c43, 05e283466b86e0b25a5209a3eafe87aa9886064a, a0528ab6af62bf57153caaf8ea28e5fcb0e18fd4, a3c8382ebce4780c6b3ace2c09bc342313ac0186 ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | cf24f5a5feeaae34c1a34d1e04f8ac697290427a ≤ v < c24b3379c0ff00101b9ede54d36f7138d8a02c43, cf24f5a5feeaae34c1a34d1e04f8ac697290427a ≤ v < 05e283466b86e0b25a5209a3eafe87aa9886064a, cf24f5a5feeaae34c1a34d1e04f8ac697290427a ≤ v < a0528ab6af62bf57153caaf8ea28e5fcb0e18fd4, cf24f5a5feeaae34c1a34d1e04f8ac697290427a ≤ v < a3c8382ebce4780c6b3ace2c09bc342313ac0186, 6.6 | c24b3379c0ff00101b9ede54d36f7138d8a02c43, 05e283466b86e0b25a5209a3eafe87aa9886064a, a0528ab6af62bf57153caaf8ea28e5fcb0e18fd4, a3c8382ebce4780c6b3ace2c09bc342313ac0186 |
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.