CVE-2026-43097Linux内核中的Hyper-V PCI驱动程序存在一个双重释放漏洞。在hv_pci_probe()函数初始化失败后的清理过程中,代码错误地调用了ida_free释放域编号,而后续的设备释放回调也会尝试释放同一资源。这导致重复释放操作,可能引发内核警告或系统崩溃。该漏洞需要本地低权限即可触发,严重影响了系统的稳定性与安全性。
该漏洞源于Linux内核`drivers/pci/controller/pci-hyperv.c`驱动中的错误处理逻辑缺陷。当`hv_pci_probe()`函数执行失败时,错误路径会显式调用`pci_bus_release_emul_domain_nr()`释放分配的域编号。然而,在设备解绑和清理阶段,`pci_release_host_bridge_dev()`回调函数也会自动执行释放操作。这种对同一ID的两次释放破坏了内核的IDA(ID分配器)数据结构,导致内核日志中报出“ida_free called for id which is not allocated”的警告。攻击者利用本地低权限账号,通过触发特定的PCI探测失败场景,可导致内核内存损坏,进而可能造成拒绝服务(DoS)或潜在的权限提升。修复方案是移除驱动程序中的显式释放调用,交由PCI核心统一管理。