CVE-2026-31436Linux内核中的Intel数据流加速器(IDXD)驱动程序存在一个严重的逻辑漏洞。在`llist_abort_desc()`函数中,由于代码实现错误,遍历描述符链表时错误地使用了`found`指针而非当前的游标指针`d`来完成操作。这一缺陷可能导致空指针解引用、描述符的双重完成或资源泄漏。鉴于该组件在内核中的关键作用,此漏洞可能被攻击者利用来触发系统崩溃(拒绝服务)或在特定条件下导致权限提升,严重影响系统的可用性和安全性。
该漏洞位于Linux内核的`drivers/dma/idxd/`子系统中,具体涉及错误处理路径下的`llist_abort_desc()`函数。该函数旨在中止并处理链表中的描述符。在函数末尾的`list_for_each_entry_safe()`循环中,代码本应遍历`flist`链表并对每一个节点`d`执行完成操作。然而,开发者错误地引用了外部变量`found`(通常用于查找特定节点)而非循环变量`d`。
当`found`为NULL或指向无效内存区域时,调用`complete_desc(found)`将直接触发内核态的空指针解引用(Kernel OOPS),导致系统崩溃。此外,如果`found`指向已被处理的描述符,将导致双重释放(Double Free),进而引发内核内存破坏。由于IDXD支持远程DMA(RDMA)操作,且CVSS评分为9.8(网络攻击向量),攻击者可能通过网络向DMA引擎发送特制数据包来触发该逻辑错误,从而实现远程拒绝服务攻击或潜在的代码执行。