CVE-2023-53463
Açıklama
Linux kernel içerisinde aşağıdaki güvenlik açığı giderilmiştir: ibmvnic: NON_FATAL hatalarında dql istatistiklerini sıfırlamayın Tüm ibmvnic sıfırlamaları, cihaz yeniden açılırken netdev_tx_reset_queue() fonksiyonunu çağırır. netdev_tx_reset_queue(), num_queued ve num_completed bayt sayaçlarını sıfırlar. Bu istatistikler Bayt Kuyruk Sınırı (Byte Queue Limit - BQL) algoritmalarında kullanılır. Bu iki istatistik arasındaki fark, fiziksel NIC üzerinde o anda bulunan bayt sayısını takip eder. ibmvnic, sürücünün xmit fonksiyonundaki netdev_tx_sent_queue() çağrıları aracılığıyla kuyruğa alınan bayt sayısını artırır. VIOS baytların iletiminin tamamlandığını bildirdiğinde, ibmvnic aygıtı netdev_tx_completed_queue() çağrıları aracılığıyla tamamlanan bayt sayısını artırır. Sürücünün iletim çağrılarını toplu halde gerçekleştirdiği ve num_queued değerinin, toplu grup mutlaka VIOS'a gönderildiğinde değil, her bir skb bir sonraki gruba eklendiğinde arttırıldığı unutulmamalıdır. Diğer sıfırlama türlerinin aksine, NON FATAL bir sıfırlama alt crq tx tamponlarını temizlemez. Bu nedenle, toplu skb dizisinin kısmen dolu olması mümkündür. Dolayısıyla, cihaz yeniden açılırken netdev_tx_reset_queue() çağrısı yapılırsa, num_queued değeri (0), halihazırda gruplanmış olan skb'leri hesaba katmayacaktır. Nihayetinde, grup VIOS'a gönderildiğinde, netdev_tx_completed_queue() çağrısı num_completed değerini num_queued değerinden daha büyük bir değere yükseltecektir. Bu durum bir BUG_ON çökmesine neden olur: ibmvnic 30000002: Firmware reports error, cause: adapter problem. Starting recovery... ibmvnic 30000002: tx error 600 ibmvnic 30000002: tx error 600 ibmvnic 30000002: tx error 600 ibmvnic 30000002: tx error 600 ------------[ cut here ]------------ kernel BUG at lib/dynamic_queue_limits.c:27! Oops: Exception in kernel mode, sig: 5 [....] NIP dql_completed+0x28/0x1c0 LR ibmvnic_complete_tx.isra.0+0x23c/0x420 [ibmvnic] Call Trace: ibmvnic_complete_tx.isra.0+0x3f8/0x420 [ibmvnic] (unreliable) ibmvnic_interrupt_tx+0x40/0x70 [ibmvnic] __handle_irq_event_percpu+0x98/0x270 ---[ end trace ]--- Bu nedenle, NON_FATAL bir sıfırlama gerçekleştirilirken dql istatistiklerini sıfırlamayın.
Nasıl düzeltilir
- linux linux_kernel5.15.121, 6.1.39, 6.4.4 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.11 ≤ v < 5.15.121, 5.16 ≤ v < 6.1.39, 6.2 ≤ v < 6.4.4 | 5.15.121, 6.1.39, 6.4.4 |
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.