CVE-2026-31441Linux内核的dmaengine子系统中的idxd驱动存在一个内存泄漏漏洞。该漏洞发生在工作队列重置的清理过程中,由于驱动程序过早地将工作队列类型标记为空,导致实际资源未被正确释放。本地低权限攻击者可利用此漏洞反复触发重置操作,造成系统内核内存持续耗尽,从而引发拒绝服务,影响系统可用性。
该漏洞位于Linux内核的`drivers/dma/idxd/`驱动模块中。问题出在`idxd_wq_disable_cleanup`函数,该函数在重置工作队列时被调用。在原始代码逻辑中,函数在释放工作队列相关资源(如描述符、内存等)之前,就先将`wq->type`设置为`IDXD_WQT_NONE`。在idxd驱动的其他部分,`wq->type`被用作判断工作队列是否为空且资源已释放的标志。因此,一旦类型被设置为NONE,驱动程序的其他逻辑会误认为资源已清理完毕,从而跳过了实际的资源释放步骤。这种状态标记与实际操作的不一致导致了内存泄漏。根据CVSS 3.1评分向量,攻击者需要本地访问权限(AV:L)和低权限用户(PR:L),无需用户交互(UI:N)即可利用此漏洞。虽然机密性(C:L)和完整性(I:N)影响较小,但可用性影响(A:H)较高,攻击者可通过持续耗尽内核内存导致系统崩溃。