CVE-2026-31645Linux内核的net: lan966x驱动模块存在资源泄露漏洞。在`lan966x_fdma_rx_alloc`和`lan966x_fdma_init`函数的错误处理路径中,若DMA内存分配失败,未能调用`page_pool_destroy`销毁已创建的页面池,导致内存资源持续泄漏。本地攻击者可利用此漏洞耗尽系统内存,导致可用性受损。
该漏洞源于Linux内核驱动`drivers/net/ethernet/microchip/lan966x/lan966x_fdma.c`中的错误处理逻辑缺失。具体而言,`lan966x_fdma_rx_alloc`函数在成功创建页面池后,如果随后的`fdma_alloc_coherent`调用失败,代码直接跳转至错误处理标签并返回,却未释放已分配的页面池资源。同样,在`lan966x_fdma_init`初始化流程中,如果`lan966x_fdma_tx_alloc`失败,代码仅释放了DMA内存,却忽略了销毁由`lan966x_fdma_rx_alloc`成功创建的页面池。由于攻击向量为本地且无需交互,本地低权限用户可通过触发特定的硬件初始化失败场景(如内存压力或DMA分配失败),反复触发该错误路径。这将导致内核内存资源无法回收,随着时间推移累积大量泄漏,最终引发系统内存耗尽(OOM),导致系统崩溃或拒绝服务。