CVE-2025-38149

net: phy: clear phydev->devlink when the link is deleted

MEDIUM
5.5
CVSS Score
Published: July 3, 2025 at 08:35 AM UTC
Updated: June 17, 2026 at 09:16 AM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
MEDIUM5.5
Exploit prediction
EPSS 0.2%

Description

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.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.13 ≤ v < 6.15.36.2 ≤ v < 6.12.346.2 ≤ v < 6.15.36.2 ≤ v < 6.166.2 ≤ v < 6.6.946.7 ≤ v < 6.12.346.2bc66fa87d4fda9053a8145e5718fc278c2b88253
Vendor states this is fixed in 034bc4a2a72dea2cfcaf24c6bae03c38ad5a0b87 (fixed)
Vendor states this is fixed in 0795b05a59b1371b18ffbf09d385296b12e9f5d5 (fixed)
Vendor states this is fixed in 363fdf2777423ad346d781f09548cca14877f729 (fixed)
Vendor states this is fixed in ddc654e89ace723b78c34911c65243accbc9b75c (fixed)
Vendor states this is fixed in 6.12.34 (unaffected)
Vendor states this is fixed in 6.15.3 (unaffected)
Vendor states this is fixed in 6.16 (unaffected)
Vendor states this is fixed in 6.2 (unaffected)
Vendor states this is fixed in 6.6.94 (unaffected)

References (4)

Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/034bc4a2a72dea2cfcaf24c6bae03c38ad5a0b87
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/0795b05a59b1371b18ffbf09d385296b12e9f5d5
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/363fdf2777423ad346d781f09548cca14877f729
Patch
Source: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
https://git.kernel.org/stable/c/ddc654e89ace723b78c34911c65243accbc9b75c

CVSS

Attack Vector
LOCAL
Complexity
LOW
Privileges
LOW
User Interaction
NONE
Scope
UNCHANGED
Confidentiality
NONE
Integrity
NONE
Availability
HIGH
Vector?

Quick Info

StatusANALYZED
CWE
CWE-476

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card