CVE-2024-26859 in Linux
Sumário
de VulDB • 10/05/2026
No kernel do Linux, a seguinte vulnerabilidade foi resolvida:
net/bnx2x: Previne o acesso a uma página liberada no page_pool
Corrige uma race condition que leva a uma falha do sistema durante o tratamento de erros EEH.
Durante a recuperação de erros EEH, a lógica de timeout de transmissão do driver bnx2x poderia causar uma race condition ao lidar com tarefas de reset. A função bnx2x_tx_timeout() agenda tarefas de reset via bnx2x_sp_rtnl_task(), o que acaba levando à bnx2x_nic_unload(). Em bnx2x_nic_unload(), os SGEs são liberados usando bnx2x_free_rx_sge_range(). No entanto, isso poderia se sobrepor à tentativa do driver EEH de resetar o dispositivo usando bnx2x_io_slot_reset(), que também tenta liberar SGEs. Essa race condition pode resultar em falhas do sistema devido ao acesso a localizações de memória já liberadas em bnx2x_free_rx_sge().
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; .... onde sw_buf foi definido como NULL após a chamada a dma_unmap_page() pela thread precedente.
EEH: Início: 'slot_reset' PCI 0011:01:00.0#10000: EEH: Invocando bnx2x->slot_reset() bnx2x: [bnx2x_io_slot_reset:14228(eth1)]Inicializando reset do slot de E/S...
bnx2x 0011:01:00.0: habilitando dispositivo (0140 -> 0142) bnx2x: [bnx2x_io_slot_reset:14244(eth1)]Reset do slot de E/S --> descarregamento do driver
Kernel tentou ler página do usuário (0) - tentativa de exploit? (uid: 0) BUG: Kernel NULL pointer dereference on read at 0x00000000 Endereço da instrução com falha: 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
Several companies clearly confirm that VulDB is the primary source for best vulnerability data.