CVE-2025-38720

In the Linux kernel, the following vulnerability has been resolved: net: hibmcge: fix rtnl deadlock issue Currently, the hibmcge netdev acquires the rtnl_lock in pci_error_handlers.reset_prepare() and releases it in pci_error_handlers.reset_done(). However, in the PCI framework: pci_reset_bus - __pci_reset_slot - pci_slot_save_and_disable_locked - pci_dev_save_and_disable - err_handler->reset_prepare(dev); In 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); } This will iterate through all devices under the current bus and execute err_handler->reset_prepare(), causing two devices of the hibmcge driver to sequentially request the rtnl_lock, leading to a deadlock. Since the driver now executes netif_device_detach() before the reset process, it will not concurrently with other netdev APIs, so there is no need to hold the rtnl_lock now. Therefore, this patch removes the rtnl_lock during the reset process and adjusts the position of HBG_NIC_STATE_RESETTING to ensure that multiple resets are not executed concurrently.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:6.17:rc1:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: net: hibmcge: corrección del problema de interbloqueo de rtnl Actualmente, el netdev hibmcge adquiere el rtnl_lock en pci_error_handlers.reset_prepare() y lo libera en pci_error_handlers.reset_done(). Sin embargo, en el framework PCI: pci_reset_bus - __pci_reset_slot - pci_slot_save_and_disable_locked - pci_dev_save_and_disable - err_handler->reset_prepare(dev); En 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); } Esto iterará a través de todos los dispositivos bajo el bus actual y ejecutará err_handler->reset_prepare(), causando que dos dispositivos del controlador hibmcge soliciten secuencialmente el rtnl_lock, lo que lleva a un interbloqueo. Dado que el controlador ahora ejecuta netif_device_detach() antes del proceso de reinicio, no lo hará concurrentemente con otras API de netdev, por lo que ahora no hay necesidad de mantener el rtnl_lock. Por lo tanto, este parche elimina el rtnl_lock durante el proceso de reinicio y ajusta la posición de HBG_NIC_STATE_RESETTING para asegurar que múltiples reinicios no se ejecuten concurrentemente.

Information

Published : 2025-09-04 16:15

Updated : 2026-10-19 21:10


NVD link : CVE-2025-38720

Mitre link : CVE-2025-38720

CVE.ORG link : CVE-2025-38720


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-667

Improper Locking