Description
In the Linux kernel, the following vulnerability has been resolved:

net: ethtool: keep rtnl_lock for the ioctl self test

An offline self test that brings the interface down and back up with
netif_close() / netif_open() requires rtnl_lock for both. Since the
ethtool IOCTL path became rtnl-optional for ops-locked drivers, the
ETHTOOL_TEST ioctl runs holding only the netdev instance lock, so on an
ops-locked driver the self test now tears the device down without
rtnl_lock.

With lockdep this reproduces deterministically on every offline self
test on such a driver; note the sole lock held is the instance lock, not
rtnl:

WARNING: suspicious RCU usage
net/core/netpoll.c:207 suspicious rcu_dereference_protected() usage!
1 lock held by ethtool/107:
#0: (&dev->lock){+.+.}, at: dev_ethtool
Call Trace:
netpoll_poll_disable
__dev_close_many
netif_close_many
netif_close
fbnic_self_test
dev_ethtool_locked
dev_ethtool
dev_ioctl
sock_ioctl
__x64_sys_ioctl

Without lockdep the same condition trips ASSERT_RTNL() in
__dev_close_many() / __dev_open(); that check only samples the global
rtnl state, so it can be masked by a concurrent rtnl holder, but the
device is still being reconfigured without the lock it requires.

The ethtool self_test is a legacy ioctl-only command, so an ETHTOOL_TEST
case is only needed on the ioctl path. Add an opt-in bit for drivers whose
self test needs rtnl_lock and set it on the ops-locked drivers whose
offline self test tears the interface down and up:

- fbnic (ops-locked via queue_mgmt_ops): fbnic_self_test() offline path
uses netif_close() / netif_open().
- bnxt (ops-locked via queue_mgmt_ops): bnxt_self_test() offline path
goes through bnxt_close_nic() / bnxt_half_open_nic() /
bnxt_half_close_nic() / bnxt_open_nic(), which close and reopen the
device.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Denial of Service via device misconfiguration
Action: Immediate Patch
AI Analysis

Impact

The Linux kernel’s ethtool interface contains a flaw that allows an offline self test to bring a network device down and back up without holding the required rtnl_lock when the driver is ops‑locked. This missing lock causes close and open operations to race against the kernel’s lock validation logic, producing lockdep warnings and triggering assertion failures in functions such as __dev_close_many. The outcome is a device that may become unstable or non‑operational, effectively denying service to the affected network interface.

Affected Systems

This issue affects Linux kernel implementations that include ops‑locked network drivers performing offline self tests, notably the fbnic and bnxt drivers. Any kernel release prior to the patch that adds an optional rtnl_lock requirement for such drivers is vulnerable. The flaw is triggered through the legacy ETHTOOL_TEST ioctl, which requires privileged (root) access.

Risk and Exploitability

The vulnerability lacks a CVSS score and EPSS data, and it is not listed in the CISA KEV catalog. Exploitation requires local root privileges to invoke the ETHTOOL_TEST ioctl, so it is not remotely exploitable from unprivileged users. However, an administrator or trusted automated process could intentionally or accidentally trigger the self test, leading to a local denial of service on the targeted interface. The risk is therefore considered medium to high for systems that routinely use the ETHTOOL_TEST ioctl on ops‑locked drivers, but low for typical user‑level deployments.

Generated by OpenCVE AI on October 18, 2026 at 22:39 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply a kernel update that includes the ethtool self-test lock fix.
  • If a kernel update is not feasible, disable or refrain from executing the ETHTOOL_TEST ioctl on interfaces that use ops‑locked drivers such as fbnic or bnxt to prevent unintended device shutdown.
  • Enable lockdep or other kernel debugging features to monitor for lock-related warnings and assertion failures, and review logs for suspicious RCU usage or failed conditions involving dev_ethtool.

Generated by OpenCVE AI on October 18, 2026 at 22:39 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 23:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-823
CWE-824

Sun, 18 Oct 2026 15:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: net: ethtool: keep rtnl_lock for the ioctl self test An offline self test that brings the interface down and back up with netif_close() / netif_open() requires rtnl_lock for both. Since the ethtool IOCTL path became rtnl-optional for ops-locked drivers, the ETHTOOL_TEST ioctl runs holding only the netdev instance lock, so on an ops-locked driver the self test now tears the device down without rtnl_lock. With lockdep this reproduces deterministically on every offline self test on such a driver; note the sole lock held is the instance lock, not rtnl: WARNING: suspicious RCU usage net/core/netpoll.c:207 suspicious rcu_dereference_protected() usage! 1 lock held by ethtool/107: #0: (&dev->lock){+.+.}, at: dev_ethtool Call Trace: netpoll_poll_disable __dev_close_many netif_close_many netif_close fbnic_self_test dev_ethtool_locked dev_ethtool dev_ioctl sock_ioctl __x64_sys_ioctl Without lockdep the same condition trips ASSERT_RTNL() in __dev_close_many() / __dev_open(); that check only samples the global rtnl state, so it can be masked by a concurrent rtnl holder, but the device is still being reconfigured without the lock it requires. The ethtool self_test is a legacy ioctl-only command, so an ETHTOOL_TEST case is only needed on the ioctl path. Add an opt-in bit for drivers whose self test needs rtnl_lock and set it on the ops-locked drivers whose offline self test tears the interface down and up: - fbnic (ops-locked via queue_mgmt_ops): fbnic_self_test() offline path uses netif_close() / netif_open(). - bnxt (ops-locked via queue_mgmt_ops): bnxt_self_test() offline path goes through bnxt_close_nic() / bnxt_half_open_nic() / bnxt_half_close_nic() / bnxt_open_nic(), which close and reopen the device.
Title net: ethtool: keep rtnl_lock for the ioctl self test
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:19:39.448Z

Reserved: 2026-09-25T10:25:14.360Z

Link: CVE-2026-98619

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:14.787

Modified: 2026-10-18T16:17:14.787

Link: CVE-2026-98619

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T22:45:04Z

Weaknesses
  • CWE-823

    Use of Out-of-range Pointer Offset

  • CWE-824

    Access of Uninitialized Pointer