CVE-2025-68232

Yüksek

Açıklama

Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: veth: txq'nun takılmasını önlemek için yarış durumunun daha sağlam yönetimi dc82a33297fc numaralı commit ("veth: apply qdisc backpressure on full ptr_ring to reduce TX drops"), kalıcı olarak durmuş bir TXQ ile sonuçlanabilecek bir yarış durumu (race condition) ortaya çıkarmıştır. Bu durum, ARM64 sistemlerde (Ampere Altra Max) üretim ortamında gözlemlenmiştir. Yarış durumu veth_xmit() fonksiyonunda meydana gelmektedir. Üretici (producer), dolu bir ptr_ring tespit eder ve kuyruğu durdurur (netif_tx_stop_queue()). Tüketicinin (consumer) kuyruğu yeni boşaltmış olması durumunda kuyruğu yeniden uyandırmayı amaçlayan sonraki koşullu mantık (if (__ptr_ring_empty(...)) netif_tx_wake_queue()), başarısız olabilir. Bu durum, TXQ'nun durdurulmuş halde kaldığı (QUEUE_STATE_DRV_XOFF) ve trafiğin kesildiği bir "kayıp uyandırma" (lost wakeup) olayına yol açar. Bu hata, üretici tarafında __ptr_ring_empty() API'sinin yanlış kullanımından kaynaklanmaktadır. Kernel yorumlarında belirtildiği üzere, başka bir CPU üzerinde çalışan bir tüketici varsa bu kontrolün doğru olacağı garanti edilmez. Boşluk testi ptr_ring->consumer_head üzerinden yapıldığından yalnızca tüketici için güvenilirdir. Bu kontrolün üretici tarafından kullanılması temelden hatalıdır (racy). Bu yama, yama setinin önceki V4 versiyonundaki her zaman eşini temizleyen (flush) daha sağlam mantığı benimseyerek yarış durumunu düzeltir: (1) veth_xmit() fonksiyonunda, hatalı koşullu uyandırma mantığı ve buna ait bellek bariyeri kaldırılmıştır. Bunun yerine, kuyruk durdurulduktan sonra koşulsuz olarak __veth_xdp_flush(rq) çağrılır. Bu, NAPI tüketicisinin planlandığını garanti ederek TXQ'yu yeniden uyandırma sorumluluğunu tamamen ona verir. Bu işlem, üretici tarafındaki veth_xmit() henüz netif_tx_stop_queue çağırmadan önce veth_poll()'un tüm paketleri tüketip NAPI işlemini tamamladığı yarış durumunu çözer. __veth_xdp_flush(rq), rx_notify_masked değerinin false olduğunu görecek ve NAPI'yi planlayacaktır. (2) Tüketici tarafında, eş TXQ'yu uyandırma mantığı veth_xdp_rcv() dışına çıkarılmış ve veth_poll() fonksiyonunun sonuna yerleştirilmiştir. Bu yerleşim, netif_tx_queue_stopped() kontrolünün, NAPI tamamlanması sırasında rx_notify_masked potansiyel olarak false olarak ayarlandıktan sonra gerçekleşmesi gerektiği için yarış durumunun çözümünün bir parçasıdır. Bu işlem, veth_poll()'un tüm paketleri tükettiği ancak henüz bitirmediği (rx_notify_masked hala true olduğu) yarış durumunu çözer. Üretici veth_xmit() TXQ'yu durdurur ve __veth_xdp_flush(rq), rx_notify_masked değerinin true olduğunu görerek NAPI'yi başlatmaz. Ardından veth_poll(), rx_notify_masked değerini false yapar ve NAPI'yi durdurur. veth_poll() çıkmadan önce TXQ'nun durduğunu tespit eder ve onu uyandırır.

ÖnemYüksek
CVSS7.5
İstismar olasılığı—
ÜrünLinux
Yayın16 Ara 2025
İlk görülme16 Ara 2025

Nasıl düzeltilir

Güncelleyin
  • Linux Linuxdd419a3f2ebc18cc00bc32c57fd052d7a188b78b, 6c8a8b9257a660e622689e23c8fbad4ba2b561b9, 5442a9da69789741bfda39f34ee7f69552bf0c56 ya da sonraki bir sürüm

Etkilenen ürünler

ÜrünEtkilenen sürümlerDüzeltildiği sürüm
Linux Linux9fe31b3f314534e238aa6d0b6fb492134cbcf8be ≤ v < dd419a3f2ebc18cc00bc32c57fd052d7a188b78b, dc82a33297fc2c58cb0b2b008d728668d45c0f6a ≤ v < 6c8a8b9257a660e622689e23c8fbad4ba2b561b9, dc82a33297fc2c58cb0b2b008d728668d45c0f6a ≤ v < 5442a9da69789741bfda39f34ee7f69552bf0c56, 6.16dd419a3f2ebc18cc00bc32c57fd052d7a188b78b, 6c8a8b9257a660e622689e23c8fbad4ba2b561b9, 5442a9da69789741bfda39f34ee7f69552bf0c56

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.

CVE-2025-68232 · Linux · Dark Radar