CVE Catalog

CVE-2026-98619

Low risk· EPSS 4%
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.16%

4th percentile - higher than 4% of all known CVEs

Summary

A Linux kernel vulnerability was fixed in the ethtool subsystem where an offline self test (ETHTOOL_TEST) could bring the network interface down and up without holding the required rtnl_lock. This affected drivers fbnic and bnxt that are ops-locked and only hold the netdev instance lock. The missing rtnl_lock triggered lockdep warnings and ASSERT_RTNL() violations.

Risk Assessment

This can lead to system instability, race conditions, and potential kernel crashes when running offline self tests on affected network drivers. In production environments, it may cause unpredictable network interface behavior.

Recommendation

Update the Linux kernel to a version containing the fix that enforces rtnl_lock for offline self tests in fbnic and bnxt drivers. If updating is not possible, avoid running ethtool offline self tests on these drivers.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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.

Vulnerability data from NVD (NIST) · CISA KEV · EPSS