CVE-2025-38149

In the Linux kernel, the following vulnerability has been resolved: net: phy: clear phydev->devlink when the link is deleted There is a potential crash issue when disabling and re-enabling the network port. When disabling the network port, phy_detach() calls device_link_del() to remove the device link, but it does not clear phydev->devlink, so phydev->devlink is not a NULL pointer. Then the network port is re-enabled, but if phy_attach_direct() fails before calling device_link_add(), the code jumps to the "error" label and calls phy_detach(). Since phydev->devlink retains the old value from the previous attach/detach cycle, device_link_del() uses the old value, which accesses a NULL pointer and causes a crash. The simplified crash log is as follows. [ 24.702421] Call trace: [ 24.704856] device_link_put_kref+0x20/0x120 [ 24.709124] device_link_del+0x30/0x48 [ 24.712864] phy_detach+0x24/0x168 [ 24.716261] phy_attach_direct+0x168/0x3a4 [ 24.720352] phylink_fwnode_phy_connect+0xc8/0x14c [ 24.725140] phylink_of_phy_connect+0x1c/0x34 Therefore, phydev->devlink needs to be cleared when the device link is deleted.
CVSS

No CVSS.

Configurations

No configuration.

History

03 Jul 2025, 15:13

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: net: phy: borra phydev->devlink al eliminar el enlace. Existe un posible fallo al deshabilitar y volver a habilitar el puerto de red. Al deshabilitar el puerto de red, phy_detach() llama a device_link_del() para eliminar el enlace del dispositivo, pero no borra phydev->devlink, por lo que phydev->devlink no es un puntero nulo. A continuación, se vuelve a habilitar el puerto de red, pero si phy_attach_direct() falla antes de llamar a device_link_add(), el código salta a la etiqueta "error" y llama a phy_detach(). Dado que phydev->devlink conserva el valor anterior del ciclo de conexión/desconexión anterior, device_link_del() utiliza el valor anterior, que accede a un puntero nulo y provoca un fallo. El registro de fallos simplificado es el siguiente. [ 24.702421] Rastreo de llamadas: [ 24.704856] device_link_put_kref+0x20/0x120 [ 24.709124] device_link_del+0x30/0x48 [ 24.712864] phy_detach+0x24/0x168 [ 24.716261] phy_attach_direct+0x168/0x3a4 [ 24.720352] phylink_fwnode_phy_connect+0xc8/0x14c [ 24.725140] phylink_of_phy_connect+0x1c/0x34 Por lo tanto, phydev->devlink debe borrarse cuando se elimina el enlace del dispositivo.

03 Jul 2025, 09:15

Type Values Removed Values Added
New CVE

Information

Published : 2025-07-03 09:15

Updated : 2025-07-03 15:13


NVD link : CVE-2025-38149

Mitre link : CVE-2025-38149

CVE.ORG link : CVE-2025-38149


JSON object : View

Products Affected

No product.

CWE

No CWE.