CVE-2026-46287
NoneCVSS
—
EPSS
0.2%
Published
Jun 8, 2026
CISA due date
—
Cloudanix analysis
Some Linux systems with specific network cards can produce kernel errors when the network driver is removed, so affected systems should receive the vendor kernel update.
- Exploitation
- Local Privilege
- Attacker needs
- High Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Race Condition
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
This is a Linux kernel driver locking defect in the txgbe network driver. On systems using a txgbe-supported copper NIC with an external PHY, the driver disconnects the PHY during module removal without holding the RTNL lock, causing a kernel RTNL assertion warning in phylink_disconnect_phy(). The observable effect is a kernel warning and stack trace during driver unload or device removal; exploitation requires the ability to remove the kernel module or otherwise trigger the driver removal path, which typically requires root or CAP_SYS_MODULE privileges. Based on the available description, this is primarily a local reliability and correctness issue rather than a remotely exploitable vulnerability.
Why it matters to the business
Organizations running affected Linux kernels on hardware using the txgbe driver may experience kernel warnings, noisy monitoring alerts, and potential disruption during network driver unload, maintenance, device removal, or kernel/module lifecycle operations. The operational risk is highest for systems where txgbe-backed network interfaces are important for availability, but the overall exploitation urgency is low because it is not in CISA KEV, is not associated with ransomware use, has very low EPSS, and no exploit maturity is reported.
How an attack unfolds
An attacker would first need local administrative capability sufficient to unload kernel modules or detach the txgbe PCI driver. On a host with a txgbe copper NIC using an external PHY, the attacker triggers the removal path, for example by unloading the txgbe module. During removal, the vulnerable driver calls phylink_disconnect_phy() without the required RTNL lock, causing the kernel to emit an RTNL assertion warning and stack trace. There is no evidence from the provided data that this enables remote code execution, privilege escalation, or unauthenticated compromise; the practical attacker value is limited to causing local kernel warning conditions or disrupting maintenance workflows if module removal is part of operations.
How to fix it
Apply a Linux kernel update that includes the txgbe driver fix adding rtnl_lock() and rtnl_unlock() around phylink_disconnect_phy() in the driver remove path. If no vendor-specific fixed version is listed, obtain the fix through the appropriate distribution kernel advisory, long-term stable kernel update, or vendor-supported kernel package. As interim mitigation, avoid unnecessary unloading or reloading of the txgbe module on affected systems, restrict module unload capabilities to trusted administrators, and schedule network driver maintenance during controlled windows. Where practical, prevent untrusted administrative workflows from invoking rmmod, modprobe -r, or PCI driver unbind operations against txgbe-backed interfaces.
How to confirm the fix worked
Confirm the running kernel package includes the vendor fix for the txgbe remove-path RTNL locking issue. Validate exposure by checking whether the txgbe module is loaded or the system has txgbe-supported NICs. On patched non-production systems, controlled removal of the txgbe module should no longer produce an RTNL assertion warning from phylink_disconnect_phy(). Review kernel logs after driver removal or maintenance for absence of the relevant warning and stack trace. Use vendor package metadata, changelogs, or kernel source inspection to verify that phylink_disconnect_phy() in the txgbe removal path is protected by rtnl_lock() and rtnl_unlock().
Typical attack path
- Obtain local privileged access to a Linux system, typically root or equivalent capability to unload kernel modules.
- Confirm the system uses hardware supported by the txgbe driver, especially a copper NIC with an external PHY.
- Trigger the txgbe driver removal path, such as by unloading the txgbe kernel module or detaching the relevant PCI driver.
- Cause phylink_disconnect_phy() to execute without the RTNL lock during removal.
- Observe kernel RTNL assertion warnings and stack traces in kernel logs.
How to detect it
To determine whether this condition has already occurred, review kernel logs and system journals for RTNL assertion warnings, phylink_disconnect_phy stack traces, and txgbe driver removal events. Relevant log sources include dmesg, journalctl -k, /var/log/kern.log, /var/log/messages, audit logs for module unload activity, and EDR telemetry for privileged execution of rmmod or modprobe -r. Focus on events where rmmod, delete_module, txgbe_driver_exit, txgbe_remove, txgbe_remove_phy, pci_device_remove, or phylink_disconnect_phy appear close together in time. Also review administrative activity around network maintenance windows, PCI driver unbind actions, and kernel module lifecycle events. Because this issue manifests as a kernel warning rather than a known post-exploitation implant or payload, indicators are mainly operational artifacts rather than attacker-specific IOCs.
- RTNL: assertion failed at drivers/net/phy/phylink.c
- WARNING: drivers/net/phy/phylink.c:2351
- phylink_disconnect_phy
- txgbe_remove_phy
- txgbe_remove
- txgbe_driver_exit
- __do_sys_delete_module
- __x64_sys_delete_module
- Comm: rmmod
- rmmod txgbe
- modprobe -r txgbe
- pci_unregister_driver
- bus_remove_driver
- driver_unregister
- /sys/bus/pci/drivers/txgbe/unbind
What your security team should do
- Prioritize patching Linux systems that use txgbe-supported NICs in production or availability-sensitive network paths.
- Confirm whether the txgbe module is loaded across Linux fleets using kernel module inventory or endpoint telemetry.
- Restrict kernel module unload operations to trusted administrators and monitor use of rmmod, modprobe -r, and PCI driver unbind actions.
- Review kernel logs for prior RTNL assertion warnings involving phylink_disconnect_phy and txgbe_remove to identify systems that have already hit the vulnerable path.
- Treat this as a low-likelihood exploitation issue unless other local privilege or operational abuse paths are present, but include the fix in regular kernel patch cycles.
- If affected systems are network-critical, test the vendor kernel update in staging before rollout to avoid unintended NIC driver regressions.
The record
In the Linux kernel, the following vulnerability has been resolved: net: txgbe: fix RTNL assertion warning when remove module For the copper NIC with external PHY, the driver called phylink_connect_phy() during probe and phylink_disconnect_phy() during remove. It caused an RTNL assertion warning in phylink_disconnect_phy() upon module remove. To fix this, add rtnl_lock() and rtnl_unlock() around the phylink_disconnect_phy() in remove function. ------------[ cut here ]------------ RTNL: assertion failed at drivers/net/phy/phylink.c (2351) WARNING: drivers/net/phy/phylink.c:2351 at phylink_disconnect_phy+0xd8/0xf0 [phylink], CPU#0: rmmod/4464 Modules linked in: ... CPU: 0 UID: 0 PID: 4464 Comm: rmmod Kdump: loaded Not tainted 7.0.0-rc4+ Hardware name: Micro-Star International Co., Ltd. MS-7E16/X670E GAMING PLUS WIFI (MS-7E16), BIOS 1.90 12/31/2024 RIP: 0010:phylink_disconnect_phy+0xe4/0xf0 [phylink] Code: 5b 41 5c 41 5d 41 5e 41 5f 5d 31 c0 31 d2 31 f6 31 ff e9 3a 38 8f e7 48 8d 3d 48 87 e2 ff ba 2f 09 00 00 48 c7 c6 c1 22 24 c0 <67> 48 0f b9 3a e9 34 ff ff ff 66 90 90 90 90 90 90 90 90 90 90 90 RSP: 0018:ffffce7288363ac0 EFLAGS: 00010246 RAX: 0000000000000000 RBX: ffff89654b2a1a00 RCX: 0000000000000000 RDX: 000000000000092f RSI: ffffffffc02422c1 RDI: ffffffffc0239020 RBP: ffffce7288363ae8 R08: 0000000000000000 R09: 0000000000000000 R10: 0000000000000000 R11: 0000000000000000 R12: ffff8964c4022000 R13: ffff89654fce3028 R14: ffff89654ebb4000 R15: ffffffffc0226348 FS: 0000795e80d93780(0000) GS:ffff896c52857000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00005b528b592000 CR3: 0000000170d0f000 CR4: 0000000000f50ef0 PKRU: 55555554 Call Trace: <TASK> txgbe_remove_phy+0xbb/0xd0 [txgbe] txgbe_remove+0x4c/0xb0 [txgbe] pci_device_remove+0x41/0xb0 device_remove+0x43/0x80 device_release_driver_internal+0x206/0x270 driver_detach+0x4a/0xa0 bus_remove_driver+0x83/0x120 driver_unregister+0x2f/0x60 pci_unregister_driver+0x40/0x90 txgbe_driver_exit+0x10/0x850 [txgbe] __do_sys_delete_module.isra.0+0x1c3/0x2f0 __x64_sys_delete_module+0x12/0x20 x64_sys_call+0x20c3/0x2390 do_syscall_64+0x11c/0x1500 ? srso_alias_return_thunk+0x5/0xfbef5 ? do_syscall_64+0x15a/0x1500 ? srso_alias_return_thunk+0x5/0xfbef5 ? do_fault+0x312/0x580 ? srso_alias_return_thunk+0x5/0xfbef5 ? __handle_mm_fault+0x9d5/0x1040 ? srso_alias_return_thunk+0x5/0xfbef5 ? count_memcg_events+0x101/0x1d0 ? srso_alias_return_thunk+0x5/0xfbef5 ? handle_mm_fault+0x1e8/0x2f0 ? srso_alias_return_thunk+0x5/0xfbef5 ? do_user_addr_fault+0x2f8/0x820 ? srso_alias_return_thunk+0x5/0xfbef5 ? irqentry_exit+0xb2/0x600 ? srso_alias_return_thunk+0x5/0xfbef5 ? exc_page_fault+0x92/0x1c0 entry_SYSCALL_64_after_hwframe+0x76/0x7e
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| openSUSE:Tumbleweed | kernel-source | 0 | 7.0.12-1.1 |
Related vulnerabilities
- CVE-2026-53354 In the Linux kernel, the following vulnerability has been resolved: arm64: errata… Also affects kernel-source
- CVE-2026-53325 In the Linux kernel, the following vulnerability has been resolved: agp/amd64: Fix broken… Also affects kernel-source
- CVE-2026-52946 In the Linux kernel, the following vulnerability has been resolved: fs/fcntl: fix… Also affects kernel-source
- CVE-2026-52907 In the Linux kernel, the following vulnerability has been resolved: media: rockchip… Also affects kernel-source
- CVE-2026-52906 In the Linux kernel, the following vulnerability has been resolved: 9p: fix access mode… Also affects kernel-source
- CVE-2026-52905 In the Linux kernel, the following vulnerability has been resolved: mm/damon/core… Also affects kernel-source
- CVE-2026-52904 In the Linux kernel, the following vulnerability has been resolved: drm/nouveau: fix… Also affects kernel-source
- CVE-2026-46332 In the Linux kernel, the following vulnerability has been resolved: greybus… Also affects kernel-source