CVE-2024-26859
Təsvir
Linux kernel-də aşağıdakı zəiflik aradan qaldırılmışdır: net/bnx2x: page_pool-da azad edilmiş səhifəyə girişin qarşısının alınması EEH xətalarının idarə edilməsi zamanı sistemin çökməsinə səbəb olan yarış vəziyyətinin (race condition) düzəldilməsi EEH xəta bərpası zamanı bnx2x drayverinin ötürmə vaxtaşımı (transmit timeout) məntiqi sıfırlama tapşırıqlarını emal edərkən yarış vəziyyətinə səbəb ola bilirdi. bnx2x_tx_timeout() funksiyası bnx2x_sp_rtnl_task() vasitəsilə sıfırlama tapşırıqlarını planlaşdırır ki, bu da sonda bnx2x_nic_unload() funksiyasına gətirib çıxarır. bnx2x_nic_unload() daxilində SGE-lər bnx2x_free_rx_sge_range() istifadə edilərək azad edilir. Lakin bu proses EEH drayverinin bnx2x_io_slot_reset() vasitəsilə cihazı sıfırlama cəhdi ilə üst-üstə düşə bilər ki, həmin funksiya da SGE-ləri azad etməyə çalışır. Bu yarış vəziyyəti bnx2x_free_rx_sge() funksiyasında azad edilmiş yaddaş ünvanlarına müraciət edildiyi üçün sistemin çökməsi ilə nəticələnə bilər: 799 static inline void bnx2x_free_rx_sge(struct bnx2x *bp, 800 struct bnx2x_fastpath *fp, u16 index) 801 { 802 struct sw_rx_page *sw_buf = &fp->rx_page_ring[index]; 803 struct page *page = sw_buf->page; .... burada əvvəlki axın tərəfindən dma_unmap_page() çağırışından sonra sw_buf NULL olaraq təyin edilmişdir. EEH: Beginning: 'slot_reset' PCI 0011:01:00.0#10000: EEH: Invoking bnx2x->slot_reset() bnx2x: [bnx2x_io_slot_reset:14228(eth1)]IO slot reset initializing... bnx2x 0011:01:00.0: enabling device (0140 -> 0142) bnx2x: [bnx2x_io_slot_reset:14244(eth1)]IO slot reset --> driver unload Kernel attempted to read user page (0) - exploit attempt? (uid: 0) BUG: Kernel NULL pointer dereference on read at 0x00000000 Faulting instruction address: 0xc0080000025065fc Oops: Kernel access of bad area, sig: 11 [#1] ..... Call Trace: [c000000003c67a20] [c00800000250658c] bnx2x_io_slot_reset+0x204/0x610 [bnx2x] (unreliable) [c000000003c67af0] [c0000000000518a8] eeh_report_reset+0xb8/0xf0 [c000000003c67b60] [c000000000052130] eeh_pe_report+0x180/0x550 [c000000003c67c70] [c00000000005318c] eeh_handle_normal_event+0x84c/0xa60 [c000000003c67d50] [c000000000053a84] eeh_event_handler+0xf4/0x170 [c000000003c67da0] [c000000000194c58] kthread+0x1c8/0x1d0 [c000000003c67e10] [c00000000000cf64] ret_from_kernel_thread+0x5c/0x64 Bu problemi həll etmək üçün azad etməzdən əvvəl səhifə hovuzu (page pool) təyinatlarının yoxlanılması lazımdır.
Necə düzəltmək olar
- linux linux_kernel4.19.311, 5.4.273, 5.10.214, 5.15.153, 6.1.83, 6.6.23, 6.7.11, 6.8.2 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 | 4.2 ≤ v < 4.19.311, 4.20 ≤ v < 5.4.273, 5.5 ≤ v < 5.10.214, 5.11 ≤ v < 5.15.153, 5.16 ≤ v < 6.1.83, 6.2 ≤ v < 6.6.23, 6.7 ≤ v < 6.7.11, 6.8 ≤ v < 6.8.2 | 4.19.311, 5.4.273, 5.10.214, 5.15.153, 6.1.83, 6.6.23, 6.7.11, 6.8.2 |
| debian debian_linux | 10.0 | — |
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.