Cloudanix VulnDB

CVE-2025-21701

Medium · 4.7

CVSS

4.7

EPSS

0.2%

Published

Feb 13, 2025

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A flaw in Linux network handling can cause crashes if a network card is removed at the same time its settings are being changed.

Exploitation
Local Privilege
Attacker needs
Low Privilege
Complexity
High
Impact
Denial Of Service
Component
OS kernel
Class
Race Condition
Remediation
Patch
Effort
Medium
Patch risk
Low

What it actually does

Race condition between net device unregistration and ethnl operations allowing use of destroyed locks or references during channel modification.

Why it matters to the business

Potential system crashes or instability on Linux hosts when network interface configuration changes overlap with device removal, increasing downtime risk in high-scale environments.

How an attack unfolds

Local attacker issues ethtool channel modifications while a concurrent unregistration path destroys internal locks, triggering warnings or crashes; similar kernel races have been leveraged by privilege escalation campaigns.

How to fix it

Apply kernel patches that extend the ethnl_ops_begin check to deny operations on unregistering devices; upgrade to fixed versions of affected packages where listed.

How to confirm the fix worked

Confirm presence of updated kernel containing the ethnl_ops_begin widening check; reproduce race scenario under debug locks to verify absence of WARNING.

Typical attack path

  1. Obtain local access on affected Linux system
  2. Trigger net device unregistration via module unload or interface down
  3. Concurrently invoke ethnl_set_channels or similar ethtool operation
  4. Cause mutex or RSS lock to be accessed after destruction

How to detect it

Review kernel logs for DEBUG_LOCKS_WARN_ON mutex magic warnings during ethtool or netdevice operations; correlate with device unregister traces.

What your security team should do

  • Prioritize kernel updates on systems exposing ethtool interfaces
  • Monitor for concurrent device removal and configuration workloads
  • Restrict ethtool access via capabilities or SELinux where possible

The record

In the Linux kernel, the following vulnerability has been resolved: net: avoid race between device unregistration and ethnl ops The following trace can be seen if a device is being unregistered while its number of channels are being modified. DEBUG_LOCKS_WARN_ON(lock->magic != lock) WARNING: CPU: 3 PID: 3754 at kernel/locking/mutex.c:564 __mutex_lock+0xc8a/0x1120 CPU: 3 UID: 0 PID: 3754 Comm: ethtool Not tainted 6.13.0-rc6+ #771 RIP: 0010:__mutex_lock+0xc8a/0x1120 Call Trace: <TASK> ethtool_check_max_channel+0x1ea/0x880 ethnl_set_channels+0x3c3/0xb10 ethnl_default_set_doit+0x306/0x650 genl_family_rcv_msg_doit+0x1e3/0x2c0 genl_rcv_msg+0x432/0x6f0 netlink_rcv_skb+0x13d/0x3b0 genl_rcv+0x28/0x40 netlink_unicast+0x42e/0x720 netlink_sendmsg+0x765/0xc20 __sys_sendto+0x3ac/0x420 __x64_sys_sendto+0xe0/0x1c0 do_syscall_64+0x95/0x180 entry_SYSCALL_64_after_hwframe+0x76/0x7e This is because unregister_netdevice_many_notify might run before the rtnl lock section of ethnl operations, eg. set_channels in the above example. In this example the rss lock would be destroyed by the device unregistration path before being used again, but in general running ethnl operations while dismantle has started is not a good idea. Fix this by denying any operation on devices being unregistered. A check was already there in ethnl_ops_begin, but not wide enough. Note that the same issue cannot be seen on the ioctl version (__dev_ethtool) because the device reference is retrieved from within the rtnl lock section there. Once dismantle started, the net device is unlisted and no reference will be found.

Affected packages

Ecosystem Package Introduced Fixed
Android :linux_kernel: :0 :2025-09-05
Debian:11 linux 0 No fix
Debian:11 linux-6.1 0 6.1.129-1~deb11u1
Debian:12 linux 0 No fix
Debian:13 linux 0 No fix
Debian:13 linux 0 6.12.13-1
Debian:14 linux 0 6.12.13-1
Linux Kernel 0 5.15.179
Mageia:9 kernel 0 6.6.79-1.mga9
Mageia:9 kernel-linus 0 6.6.79-1.mga9
Mageia:9 kmod-virtualbox 0 7.0.24-67.mga9
Mageia:9 kmod-xtables-addons 0 3.24-73.mga9
SUSE:Linux Enterprise High Availability Extension 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise High Availability Extension 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_19 0 14-150500.2.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_20 0 14-150500.2.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_21 0 10-150500.2.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_24 0 6-150500.2.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_27 0 4-150500.2.1
SUSE:Linux Enterprise Live Patching 15 SP5 kernel-livepatch-SLE15-SP5_Update_28 0 4-150500.2.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_0 0 21-150600.3.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_1 0 20-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_10 0 1-150600.1.5.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_6 0 11-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6-RT_Update_7 0 11-150600.2.1
SUSE:Linux Enterprise Live Patching 15 SP6 kernel-livepatch-SLE15-SP6_Update_10 0 1-150600.13.5.1
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-livepatch-SLE15-SP7_Update_0 0 3-150700.3.6.2
SUSE:Linux Enterprise Live Patching 15 SP7 kernel-livepatch-SLE15-SP7_Update_1 0 1-150700.15.3.1
SUSE:Linux Enterprise Micro 5.5 kernel-rt 0 5.14.21-150500.13.103.2
SUSE:Linux Enterprise Micro 5.5 kernel-source-rt 0 5.14.21-150500.13.103.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-64kb 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-default-base 0 6.4.0-150600.23.47.2.150600.12.20.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-source 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Basesystem 15 SP6 kernel-zfcpdump 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-64kb 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-default-base 0 6.4.0-150700.53.3.1.150700.17.2.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-source 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Basesystem 15 SP7 kernel-zfcpdump 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-coco_debug 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-source-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Confidential Computing Technical Preview 15 SP6 kernel-syms-coco 0 6.4.0-15061.21.coco15sp6.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-docs 0 6.4.0-150600.23.47.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-obs-build 0 6.4.0-150600.23.47.1
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-source 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Development Tools 15 SP6 kernel-syms 0 6.4.0-150600.23.47.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-docs 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-obs-build 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-source 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Development Tools 15 SP7 kernel-syms 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Legacy 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Module for Legacy 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-azure 0 6.4.0-150600.8.34.2
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-source-azure 0 6.4.0-150600.8.34.2
SUSE:Linux Enterprise Module for Public Cloud 15 SP6 kernel-syms-azure 0 6.4.0-150600.8.34.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-source-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Module for Public Cloud 15 SP7 kernel-syms-azure 0 6.4.0-150700.20.3.1
SUSE:Linux Enterprise Workstation Extension 15 SP6 kernel-default 0 6.4.0-150600.23.47.2
SUSE:Linux Enterprise Workstation Extension 15 SP7 kernel-default 0 6.4.0-150700.53.3.1
SUSE:Real Time Module 15 SP6 kernel-rt 0 6.4.0-150600.10.34.1
SUSE:Real Time Module 15 SP6 kernel-rt_debug 0 6.4.0-150600.10.34.1
SUSE:Real Time Module 15 SP6 kernel-source-rt 0 6.4.0-150600.10.34.1
SUSE:Real Time Module 15 SP6 kernel-syms-rt 0 6.4.0-150600.10.34.1
openSUSE:Leap 15.6 dtb-aarch64 0 6.4.0-150600.23.47.1
openSUSE:Leap 15.6 kernel-64kb 0 6.4.0-150600.23.47.2
openSUSE:Leap 15.6 kernel-azure 0 6.4.0-150600.8.34.2
openSUSE:Leap 15.6 kernel-debug 0 6.4.0-150600.23.47.2
openSUSE:Leap 15.6 kernel-default 0 6.4.0-150600.23.47.2
openSUSE:Leap 15.6 kernel-default-base 0 6.4.0-150600.23.47.2.150600.12.20.2
openSUSE:Leap 15.6 kernel-docs 0 6.4.0-150600.23.47.1
openSUSE:Leap 15.6 kernel-kvmsmall 0 6.4.0-150600.23.47.2
openSUSE:Leap 15.6 kernel-obs-build 0 6.4.0-150600.23.47.1
openSUSE:Leap 15.6 kernel-obs-qa 0 6.4.0-150600.23.47.1
openSUSE:Leap 15.6 kernel-rt 0 6.4.0-150600.10.34.1
openSUSE:Leap 15.6 kernel-rt_debug 0 6.4.0-150600.10.34.1
openSUSE:Leap 15.6 kernel-source 0 6.4.0-150600.23.47.2
openSUSE:Leap 15.6 kernel-source-azure 0 6.4.0-150600.8.34.2
openSUSE:Leap 15.6 kernel-source-rt 0 6.4.0-150600.10.34.1
openSUSE:Leap 15.6 kernel-syms 0 6.4.0-150600.23.47.1
openSUSE:Leap 15.6 kernel-syms-azure 0 6.4.0-150600.8.34.1
openSUSE:Leap 15.6 kernel-syms-rt 0 6.4.0-150600.10.34.1
openSUSE:Leap 15.6 kernel-zfcpdump 0 6.4.0-150600.23.47.2

Related vulnerabilities