Cloudanix VulnDB

CVE-2025-38149

None

CVSS

—

EPSS

0.2%

Published

Jul 3, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A bug in the Linux kernel can make computers crash when network connections are turned off and back on again in certain situations.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
OS kernel
Class
Use After Free
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Use-after-free condition in Linux kernel PHY layer where phydev->devlink retains a stale pointer after device_link_del(), leading to NULL pointer dereference in device_link_put_kref during subsequent phy_attach_direct failure paths.

Why it matters to the business

Unexpected system crashes during routine network interface disable/enable cycles on affected Linux distributions, causing service disruption and potential data loss in high-availability or containerized environments with many downstream dependents.

How an attack unfolds

An attacker with local access triggers repeated network port attach/detach sequences (via interface configuration or error injection) that hit the phy_attach_direct error path before device_link_add, causing the kernel to dereference the uncleared stale devlink pointer and panic.

How to fix it

Update to fixed kernel versions containing commit 363fdf2777423ad346d781f09548cca14877f729 or later; for croc packages upgrade to 10.2.2-r3 on Chainguard and Wolfi distributions. Reboot after applying kernel updates.

How to confirm the fix worked

Verify the presence of commit 363fdf2777423ad346d781f09548cca14877f729 in the running kernel source or package version; attempt the attach/detach sequence under error injection and confirm absence of the device_link_put_kref crash trace.

Typical attack path

  1. Obtain local execution on target Linux system
  2. Disable a network port to invoke phy_detach and device_link_del without clearing phydev->devlink
  3. Re-enable the port such that phy_attach_direct fails before device_link_add
  4. Trigger phy_detach again which calls device_link_del on the stale pointer
  5. Cause kernel panic via NULL dereference in device_link_put_kref

How to detect it

Search kernel logs and dmesg for the call trace containing device_link_put_kref, device_link_del, phy_detach, and phy_attach_direct; correlate with network interface configuration events or container network setup failures around the published date.

What your security team should do

  • Prioritize kernel updates on all internet-facing and high-availability Linux systems within the published remediation window
  • Audit network interface management scripts and container runtimes for frequent attach/detach patterns
  • Monitor kernel logs for device_link_del and phy_detach call traces indicating attempted exploitation
  • Test the fix in a staging environment using the exact attach failure reproducer before broad deployment

The record

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 packages

Ecosystem Package Introduced Fixed
Debian:13 linux 0 No fix
Linux Kernel 6.2.0 6.6.94
Mageia:9 kernel 0 6.6.101-1.mga9
Mageia:9 kernel-linus 0 6.6.101-1.mga9
Mageia:9 kmod-virtualbox 0 7.1.10-7.mga9
Mageia:9 kmod-xtables-addons 0 3.24-83.mga9
Mageia:9 wireless-regdb 0 20250710-1.mga9
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_14 0 1-150600.1.5.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_14 0 1-150600.13.3.4
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-livepatch-SLE15-SP7-RT_Update_3 0 1-150700.1.5.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.65.1.150600.12.28.4
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.28.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.48.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.48.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.48.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.65.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.49.1
SUSE:Real Time Module 15 SP7 kernel-rt 0 6.4.0-150700.7.13.1
SUSE:Real Time Module 15 SP7 kernel-source-rt 0 6.4.0-150700.7.13.1
SUSE:Real Time Module 15 SP7 kernel-syms-rt 0 6.4.0-150700.7.13.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.48.1
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.65.1.150600.12.28.4
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.48.1
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.65.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.48.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.49.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.65.1
openSUSE:Leap 16.0 dtb-aarch64 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-64kb 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-default 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-default-base 0 6.12.0-160000.6.1.160000.2.4
openSUSE:Leap 16.0 kernel-docs 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-kvmsmall 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-obs-build 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-obs-qa 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-rt 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-source 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-syms 0 6.12.0-160000.6.1
openSUSE:Leap 16.0 kernel-zfcpdump 0 6.12.0-160000.6.1

Related vulnerabilities