CVE-2026-31440Linux内核中的dmaengine:idxd驱动程序存在内存泄漏漏洞。在设备移除过程中,设备重置导致配置寄存器归零。由于驱动程序在释放内存前错误地依赖寄存器状态检查事件日志支持是否启用,重置操作会导致检查失败,从而跳过事件日志内存的释放步骤。该漏洞可能被本地低权限攻击者利用,通过重复触发设备移除操作导致内核内存耗尽,进而影响系统可用性。
该漏洞位于Linux内核的`dmaengine: idxd`子系统中,具体涉及设备移除时的资源管理逻辑。当设备被移除时,驱动程序会执行硬件重置,将配置寄存器恢复为默认值(即零)。原有的代码逻辑在释放事件日志(EVL)内存之前,会检查硬件寄存器以确认EVL功能是否已启用。然而,由于重置操作发生在检查之前,寄存器值已被清零,导致驱动程序误判EVL未启用,从而未执行内存释放操作。修复方案改为直接检查`idxd->evl`指针的有效性,该指针仅在硬件具备相应能力时分配。此漏洞属于逻辑错误导致的内存泄漏。攻击者需拥有本地低权限账户,通过频繁操作设备加载与卸载或触发相关系统调用,可累积泄漏内存,最终可能导致系统因内存不足而崩溃或拒绝服务。