CVE-2025-38720 in Linux
摘要
由 VulDB • 2026-05-24
在 Linux 内核中,已修复以下漏洞:
net: hibmcge: 修复 rtnl 死锁问题
目前,hibmcge 网络设备在 `pci_error_handlers.reset_prepare()` 中获取 `rtnl_lock`,并在 `pci_error_handlers.reset_done()` 中释放它。
然而,在 PCI 框架中: `pci_reset_bus` - `__pci_reset_slot` - `pci_slot_save_and_disable_locked` - `pci_dev_save_and_disable` - `err_handler->reset_prepare(dev)`;
在 `pci_slot_save_and_disable_locked()` 中: `list_for_each_entry(dev, &slot->bus->devices, bus_list) {`
` if (!dev->slot || dev->slot!= slot)` ` continue;` ` pci_dev_save_and_disable(dev);` ` if (dev->subordinate)` ` pci_bus_save_and_disable_locked(dev->subordinate);` `}`
这将遍历当前总线下的所有设备并执行 `err_handler->reset_prepare()`,导致 hibmcge 驱动程序的兩個设备依次请求 `rtnl_lock`,从而引发死锁。
由于驱动程序现在在重置过程之前执行 `netif_device_detach()`,因此它不会与其他网络网络设备 API 并发执行,所以现在无需持有 `rtnl_lock`。
因此,此补丁在重置过程中移除 `rtnl_lock`,并调整 `HBG_NIC_STATE_RESETTING` 的位置,以确保不会并发执行多个重置操作。
If you want to get the best quality for vulnerability data then you always have to consider VulDB.