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

thunderbolt: Hold a router reference for each allocated HopID

tb_stop() drops the reference to all DP tunnels but does not deactivate
them, thus nothing cancels a dprx_work still in flight (which holds its
own tunnel reference) and the tunnel can outlive tb_switch_remove(). The
HopID releases in tb_path_free() then operate on freed IDAs and trigger
warnings like

ida_free called for id=8 which is not allocated.

This can be triggered by unbinding the driver while a DP tunnel is still
waiting for the DPRX capabilities read to finish. On the Apple NHI
unplugging the cable runs into just that reliably because the read can
never finish right now and because the unplug powers down the entire
USB4 complex and removes the NHI device.

Take a router reference whenever an input or output HopID is allocated
and drop it again after the HopID is released. This keeps the ports and
their HopID IDAs alive for as long as they are used.

The KUnit tests allocate routers without ever registering their devices
so initialize the embedded struct device there as well and drop its
initial reference when the test is finished.
Published: 2026-10-18
Score: 4.1 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Kernel memory corruption due to use‑after‑free in the thunderbolt driver
Action: Patch
AI Analysis

Impact

The bug resides in the Linux kernel’s thunderbolt subsystem where a router reference is not taken for each allocated HopID. When tb_stop() drops all DP tunnel references without deactivating them, tunnels may outlive the router objects. This creates a use‑after‑free condition that, upon HopID release, operates on freed IDAs and produces warnings such as “ida_free called for id=8 which is not allocated.” The flaw can be triggered by unbinding the driver while a DP tunnel is awaiting a DPRX capability read, especially during a USB‑4 cable unplug on an Apple NHI device. The resulting kernel memory corruption could lead to undefined kernel behaviour.

Affected Systems

Linux kernel builds that still contain the thunderbolt driver before the commit that adds router reference handling are affected. The CNA data lists the product generically as “Linux kernel”, with no specific version numbers. Distributions running a kernel older than the commit that fixes the router reference omission are potentially vulnerable.

Risk and Exploitability

The CVSS score of 4.1 denotes moderate severity, and the EPSS score of less than 1% signals a very low probability of exploitation. The vulnerability is not included in the CISA KEV catalog. The likely attack vector is local or privileged, requiring the ability to unbind the thunderbolt driver or physically unplug a USB‑4 cable when a DP tunnel is active. Because the flaw triggers a use‑after‑free that can corrupt kernel memory, an attacker with sufficient privileges could potentially turn the bug into a kernel compromise, though privilege escalation is not explicitly stated in the description.

Generated by OpenCVE AI on October 23, 2026 at 06:40 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Apply the latest Linux kernel release that contains the commit addressing the router reference bug
  • Ensure that no DP tunnels are active before unbinding or reconfiguring the thunderbolt driver; close tunnels first
  • Watch kernel log messages for ‘ida_free called for id=’ warnings and reboot if they appear, as they signal the use‑after‑free condition

Generated by OpenCVE AI on October 23, 2026 at 06:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 23 Oct 2026 00:45:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Thu, 22 Oct 2026 12:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-825
References
Metrics threat_severity

None

cvssV3_1

{'score': 4.1, 'vector': 'CVSS:3.1/AV:L/AC:H/PR:H/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


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

Type Values Removed Values Added
Weaknesses CWE-416

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

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: thunderbolt: Hold a router reference for each allocated HopID tb_stop() drops the reference to all DP tunnels but does not deactivate them, thus nothing cancels a dprx_work still in flight (which holds its own tunnel reference) and the tunnel can outlive tb_switch_remove(). The HopID releases in tb_path_free() then operate on freed IDAs and trigger warnings like ida_free called for id=8 which is not allocated. This can be triggered by unbinding the driver while a DP tunnel is still waiting for the DPRX capabilities read to finish. On the Apple NHI unplugging the cable runs into just that reliably because the read can never finish right now and because the unplug powers down the entire USB4 complex and removes the NHI device. Take a router reference whenever an input or output HopID is allocated and drop it again after the HopID is released. This keeps the ports and their HopID IDAs alive for as long as they are used. The KUnit tests allocate routers without ever registering their devices so initialize the embedded struct device there as well and drop its initial reference when the test is finished.
Title thunderbolt: Hold a router reference for each allocated HopID
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-19T09:24:03.100Z

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

Link: CVE-2026-98693

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

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

Modified: 2026-10-19T10:19:33.640

Link: CVE-2026-98693

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-10-18T00:00:00Z

Links: CVE-2026-98693 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-23T06:45:07Z

Weaknesses
  • CWE-825

    Expired Pointer Dereference