Severity by source
AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Triggering teardown requires root or CAP_NET_ADMIN (PR:H); only availability is impacted (A:H); no confidentiality or integrity compromise described.
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
Lifecycle Timeline
5DescriptionCVE.org
In the Linux kernel, the following vulnerability has been resolved:
net: thunderbolt: Tear down DMA paths before stopping the rings
tbnet_tear_down() stops both rings and frees their frame buffers before calling tb_xdomain_disable_paths(). tb_ring_stop() zeroes the ring's descriptor base and tbnet_free_buffers() unmaps and frees the pages the frames sit in, so by the time __tb_path_deactivate_hop() polls the hop's 'pending' bit, anything still in flight has nowhere to drain to.
The teardown sequence has been in this order since the driver was added. The setup path has not: commit ff7cd07f3064 ("net: thunderbolt: Enable DMA paths only after rings are enabled") moved the path enable to the end of tbnet_connected_work() and documented why:
/* Both logins successful so enable the rings, high-speed DMA
- paths and start the network device queue.
*
- Note we enable the DMA paths last to make sure we have primed
- the Rx ring before any incoming packets are allowed to
- arrive.
*/
Teardown was never updated to match, so the rings and the paths now come down in the same order they go up instead of in reverse.
On an ASMedia ASM4242 host router the 'pending' bit then never clears: every teardown burns the full 500 ms timeout and __tb_path_deactivate_hop() returns -ETIMEDOUT. Raising the timeout to 5 s does not help, so the hop is not slow to drain, it never drains at all.
The failure is invisible above the thunderbolt core. __tb_path_deactivate_hops() is void and only calls tb_port_warn(); tb_path_deactivate(), tb_tunnel_deactivate() and __tb_disconnect_xdomain_paths() are void as well, and tb_disconnect_xdomain_paths() ends in an unconditional "return 0". So tb_xdomain_disable_paths() reports success and the netdev_warn() below it never fires. Repeated teardowns eventually take the XDomain control channel down, after which the peer node is gone and only a power cycle brings the controller back.
Deactivating the paths first fixes it. Measured with kretprobes on a stock v6.17 tree with no other patches applied, on a link that was up and had just carried traffic:
before: __tb_path_deactivate_hop() returns 0 for the first hop, then -ETIMEDOUT for the second 500335 us later after: 0 for both, 525 us apart
Alternating the two orderings ABBA over three load levels, four teardowns per arm: every teardown failed before the change (21 of 21 that ran), none failed after (0 of 24). The before arms ran short because the link died partway through. The same split shows up when the interface is enslaved to a bond instead of just brought down, which is how I ran into this in the first place. Throughput and latency after the change are unchanged.
Hosts whose routers drain the hop despite the stale descriptor base see no functional difference, since the paths end up deactivated either way.
AnalysisAI
Thunderbolt networking driver (tbnet) in the Linux kernel crashes the XDomain control channel due to an incorrect teardown ordering introduced since the driver was added in Linux 4.15, requiring a physical power cycle of the Thunderbolt controller to recover. Systems running Linux 4.15 through the pre-patch stable branches with active Thunderbolt peer-to-peer networking links (XDomain) are affected when a privileged user or process tears down the network interface. …
Unlock full vulnerability intelligence
- Risk assessment & exploitation conditions
- Attack chain visualization
- Remediation with exact patch versions
- Threat intelligence from 22 sources
- Personal watchlist & email alerts
Free forever · No credit card required
Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata
Vulnerability AssessmentAI
| Exploitation | The vulnerability triggers exclusively during Thunderbolt network interface teardown - initiated by `ip link set down`, network bonding enslavement, or system shutdown - when all of the following are true: (1) the tbnet kernel module is loaded; (2) a physical Thunderbolt cable connects the host to a peer machine also running tbnet; and (3) an active XDomain peer-to-peer networking session is established. … Additional conditions and limiting factors are described in the full assessment. |
| Risk Assessment | The NVD-assigned CVSS 8.8 (AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H) is significantly inconsistent with the vulnerability description. … Full risk analysis with EPSS, KEV, and SSVC signal comparison available after sign-in. |
| Exploit Scenario | A privileged user (root or CAP_NET_ADMIN) on a Linux host physically connected to a peer via Thunderbolt cable - with both ends running the tbnet driver and an active XDomain link - issues `ip link set <tbnet_iface> down` or enslaves the interface to a network bond. The incorrect teardown order causes each hop's pending bit to never clear; after two 500 ms timeouts the XDomain control channel collapses. … |
| Remediation | Upgrade to a patched Linux kernel stable release: 5.15.216, 6.1.183, 6.6.152, 6.12.104, 6.18.45, 7.1.9, or 7.2 or later. … Detailed patch versions, workarounds, and compensating controls in full report. |
Recommended ActionAI
Within 24 hours, identify all Linux systems running kernels 4.15 through current stable releases with Thunderbolt XDomain peer-to-peer networking active. …
Sign in for detailed remediation steps and compensating controls.
Threat intelligence, references, and detailed analysis are available after sign-in.
Same technique Information Disclosure
View allShare
External POC / Exploit Code
Leaving vuln.today
EUVD-2026-64378
GHSA-m57c-v73h-37p6