CVE-2026-31594Linux内核的PCI端点功能驱动pci-epf-vntb中存在一处资源管理逻辑错误。由于`epf_ntb_epc_destroy()`函数重复执行了调用者后续路径中本应进行的资源销毁操作,导致在处理链路建立失败或链路断开时,系统会尝试访问无效内存地址,从而引发内核崩溃。该漏洞攻击复杂度低,需本地低权限即可触发,主要影响系统可用性。
该漏洞位于Linux内核`drivers/pci/endpoint/functions/pci-epf-vntb.c`文件中的函数实现缺陷。`epf_ntb_epc_destroy()`函数内部调用了`pci_epc_remove_epf()`和`pci_epc_put()`。然而,在调用路径`pci_primary_epc_epf_link`(通过configfs symlink触发)中,如果`allow_link`失败或执行`drop_link`,上层调用逻辑也会对资源进行清理。这种重复释放导致EPC设备引用计数异常,引发内核访问无效地址(如`dead000000000108`)。攻击者通过在本地系统中操作configfs接口,触发特定的symlink操作,即可导致系统Oops,造成拒绝服务。