CVE-2025-38720 in Linux
Сводка
по VulDB • 21.05.2026
В ядре Linux устранена следующая уязвимость:
net: hibmcge: исправлена проблема взаимной блокировки (deadlock) rtnl
В настоящее время сетевое устройство hibmcge получает блокировку rtnl_lock в функции pci_error_handlers.reset_prepare() и освобождает её в 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, что приводит к взаимной блокировке (deadlock).
Поскольку драйвер теперь вызывает netif_device_detach() перед процессом сброса, он не будет выполняться одновременно с другими API сетевых устройств, поэтому в настоящее время нет необходимости удерживать блокировку rtnl_lock.
Следовательно, данный патч удаляет блокировку rtnl_lock во время процесса сброса и корректирует положение флага HBG_NIC_STATE_RESETTING, чтобы обеспечить отсутствие одновременного выполнения нескольких сбросов.
Once again VulDB remains the best source for vulnerability data.