CVE-2023-53463
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılıb: ibmvnic: NON_FATAL xətası zamanı dql statistikalarını sıfırlamayın Bütün ibmvnic sıfırlamaları cihaz yenidən açılarkən netdev_tx_reset_queue() funksiyasını çağırır. netdev_tx_reset_queue() num_queued və num_completed bayt sayğaclarını sıfırlayır. Bu statistikalar Bayt Növbə Limiti (Byte Queue Limit - BQL) alqoritmlərində istifadə olunur. Bu iki statistika arasındakı fərq hazırda fiziki NIC-də olan baytların sayını izləyir. ibmvnic, drayverin xmit funksiyasındakı netdev_tx_sent_queue() çağırışları vasitəsilə növbədə gözləyən baytların sayını artırır. VIOS baytların ötürülməsinin tamamlandığını bildirdikdə, ibmvnic cihazı netdev_tx_completed_queue() çağırışları vasitəsilə tamamlanmış baytların sayını artırır. Qeyd etmək vacibdir ki, drayver ötürmə çağırışlarını paketlər halında qruplaşdırır və num_queued hər dəfə bir skb növbəti paketə əlavə edildikdə artırılır, mütləq şəkildə paket ötürülmək üçün VIOS-a göndərildikdə yox. Digər sıfırlama növlərindən fərqli olaraq, NON_FATAL sıfırlaması sub crq tx buferlərini təmizləmir. Buna görə də, paketlənmiş skb massivinin qismən dolu olması mümkündür. Beləliklə, cihaz yenidən açılarkən netdev_tx_reset_queue() çağırılsaydı, num_queued-nin qiyməti (0) hazırda paketlənmiş skb-ləri nəzərə almayacaqdı. Nəticədə, paket VIOS-a göndərildikdə, netdev_tx_completed_queue() çağırışı num_completed-ni num_queued-dən daha böyük bir qiymətə qaldıracaqdı. Bu isə BUG_ON çökməsinə səbəb 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 ]--- Buna görə də, NON_FATAL sıfırlaması yerinə yetirilərkən dql statistikalarını sıfırlamayın.
Necə düzəltmək olar
- linux linux_kernel5.15.121, 6.1.39, 6.4.4 və ya daha yeni versiya
Təsirlənən məhsullar
| Məhsul | Təsirlənən versiyalar | Düzəldildiyi versiya |
|---|---|---|
| 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 |
Versiyanızı yoxlayın
Məhsulu seçin və istifadə etdiyiniz versiyanı yazın; versiyanın təsirlənən aralıqda olub-olmadığını görün.
Attack Surface Management
Domenlərinizə bağlı aktivləri, onlarda işləyən texnologiyaları və məlum zəiflikləri bir siyahıda görün.