CVE-2026-98965
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: ice: Tx Doorbells için Sıralı MMIO Yazmaları Geri Getirildi NIC tarafından iletilmek üzere kuyruğa alınan bayt sayısını takip eden DQL muhasebe durumu (özellikle dql->num_queued), ICE sürücüsü __netdev_tx_sent_queue() fonksiyonunu çağırdığında güncellenir. Ardından sürücü, NIC'in iş kuyruğunu işlemeye başlamasına izin vererek donanım kuyruk sonunu günceller. Kuyruk muhasebe güncellemesi, NIC tanımlayıcıları iletmeye başlamadan önce sıralanmalıdır. İletim yolu şu anda donanım kapı zilini (doorbell) writel_relaxed() kullanarak güncellemektedir; bu fonksiyon (arm64 üzerinde), writel() fonksiyonunun sağladığı normal bellek yazımları ile MMIO kayıtçısı yazımları arasındaki aynı sıralama garantilerini sağlamaz. Bu durum, dql->num_queued güncellemesi küresel olarak görünür olmadan önce NIC'in tanımlayıcıları iletmeye başladığı potansiyel bir yarış durumuna (race condition) yol açar. Eğer NIC, güncelleme dql_completed() tarafından gözlemlenmeden önce işlemi bitirirse, kuyruğa alınandan daha fazla baytın tamamlandığı geçersiz bir durum tespit eder. Bu gerçekleştiğinde aşağıdaki BUG_ON tetiklenir. BUG_ON(count > num_queued - dql->num_completed); Bu durum, arm64 makinede SFP için Intel Corporation Ethernet Controller E810-XXV (rev 02) kullanan ve sürekli ağ yükü olan bir ortamda gözlemlenmiş ve aşağıdaki çökme şeklinde ortaya çıkmıştır (izleme kaydı kısaltılmıştır). Test çekirdeğinde writel_relaxed() fonksiyonunun writel() ile değiştirilmesi, önceden sorunu güvenilir şekilde yeniden üreten kullanıcı iş yükündeki çökmeyi ortadan kaldırmıştır. kernel BUG at lib/dynamic_queue_limits.c:99 Internal error: Oops - BUG: 00000000f2000800 [#1] SMP pc : dql_completed+0x268/0x2a0 lr : ice_clean_tx_irq+0x1d4/0x620 [ice] Call trace: dql_completed+0x268/0x2a0 (P) ice_napi_poll+0x94/0x520 [ice] __napi_poll+0x48/0x3f0 net_rx_action+0x194/0x420 Bu değişiklik, bildirim mekanizmasını writel()'dan writel_relaxed()'a değiştiren ccde82e90946 ("ice: add E830 Earliest TxTime First Offload support") commit'inden önceki davranışı geri getirir.
Nasıl düzeltilir
- Linux Linuxb7725acf9c574debb97ae1613569ac9e148438be, f94ab1fffd009250d72c6dc1662cb84467ac5365, 7a579dec8423bba7bec96fcfcb2e30838b0858ee ya da sonraki bir sürüm
Etkilenen ürünler
| Ürün | Etkilenen sürümler | Düzeltildiği sürüm |
|---|---|---|
| Linux Linux | ccde82e909467abdf098a8ee6f63e1ecf9a47ce5 ≤ v < b7725acf9c574debb97ae1613569ac9e148438be, ccde82e909467abdf098a8ee6f63e1ecf9a47ce5 ≤ v < f94ab1fffd009250d72c6dc1662cb84467ac5365, ccde82e909467abdf098a8ee6f63e1ecf9a47ce5 ≤ v < 7a579dec8423bba7bec96fcfcb2e30838b0858ee, 6.18 | b7725acf9c574debb97ae1613569ac9e148438be, f94ab1fffd009250d72c6dc1662cb84467ac5365, 7a579dec8423bba7bec96fcfcb2e30838b0858ee |
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.