IPBUF安全漏洞报告
English
CVE-2026-31645 CVSS 5.5 中危

CVE-2026-31645 Linux内核lan966x驱动页面池泄漏漏洞

披露日期: 2026-04-24
来源: 416baaa9-dc9f-4396-8d5f-8c081fb06d67

漏洞信息

漏洞编号
CVE-2026-31645
漏洞类型
资源泄漏
CVSS评分
5.5 中危
攻击向量
本地 (AV:L)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Linux Kernel

相关标签

资源泄漏Linux KernelDoSLAN966X本地漏洞

漏洞概述

Linux内核的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),导致系统崩溃或拒绝服务。

攻击链分析

STEP 1
步骤1:本地访问
攻击者需要在目标系统上拥有本地低权限访问权限。
STEP 2
步骤2:触发错误路径
攻击者执行操作或利用系统状态,导致lan966x驱动初始化过程中的DMA内存分配失败(例如通过消耗内存资源)。
STEP 3
步骤3:资源泄漏
驱动程序在错误处理路径中未释放已创建的页面池,导致内核内存泄漏。
STEP 4
步骤4:拒绝服务
攻击者重复触发该过程,累积泄漏大量内存,最终导致系统内存耗尽,引发系统不稳定或崩溃。

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
/* * Conceptual Proof of Concept for CVE-2026-31645 * This code demonstrates the logic flow that causes the leak. * Actual exploitation requires a system with the specific * Microchip LAN966x hardware and the vulnerable kernel driver. */ #include <linux/module.h> #include <linux/netdevice.h> // Hypothetical structure definitions based on the patch context struct page_pool *pool; void simulate_vulnerable_error_path(void) { // Step 1: Create page pool (Successful) pool = page_pool_create(...); if (!pool) return; // Step 2: Attempt DMA coherent allocation (Simulate Failure) if (fdma_alloc_coherent(...) != 0) { // VULNERABILITY: The code returns here without calling page_pool_destroy(pool). // This results in a memory leak of the page pool. pr_err("DMA allocation failed. Leaking page pool!\n"); return; } // Normal cleanup if successful page_pool_destroy(pool); } // Note: To test this, one would need to load the driver on affected hardware // and induce conditions where fdma_alloc_coherent fails repeatedly.

影响范围

Linux Kernel < 6.12-rc1
Linux Kernel < 6.11.3
Linux Kernel < 6.10.14
Linux Kernel < 6.6.53

防御指南

临时缓解措施
如果无法立即升级内核,建议禁用LAN966x网络驱动模块以防止漏洞被触发。此外,可以通过限制本地用户权限和加强系统资源监控来缓解潜在的拒绝服务攻击风险。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表