CVE-2026-31468Linux内核中的vfio/pci组件在处理dma-buf功能时存在双重释放漏洞。由于错误处理路径逻辑缺陷,当发生文件描述符耗尽时,代码未能正确执行dma_buf_put,而是直接进入了通用的回退链。这导致vfio设备引用计数失衡,引发已分配对象的二次释放。本地攻击者可利用此漏洞造成系统拒绝服务或潜在的权限提升。
该漏洞位于Linux内核的vfio子系统,具体涉及`vfio_pci_core_feature_dma_buf`函数。在正常流程中,当调用`dma_buf_export`成功后,若后续步骤失败(如获取文件描述符失败),应仅通过`dma_buf_put`减少引用计数并返回错误。然而,当前实现忽略了这一建议,错误地进入了完整的解包链。这导致`dma_buf`对象被释放两次,破坏了内核堆的元数据。攻击者可通过耗尽文件描述符并触发该特定功能,利用此内存破坏漏洞进行本地提权。