{"id":"CVE-2026-98693","title":"thunderbolt: Hold a router reference for each allocated HopID","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nthunderbolt: Hold a router reference for each allocated HopID\n\ntb_stop() drops the reference to all DP tunnels but does not deactivate\nthem, thus nothing cancels a dprx…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= d6d458d42e1e1544a18f37f1d5c840e00d5261b9 < c444d2c17dc236680324fd989232199680a6c419","Linux >= d6d458d42e1e1544a18f37f1d5c840e00d5261b9 < 2b5f976119d8f099a03cbf700df3d9c8690fe33d","Linux >= d6d458d42e1e1544a18f37f1d5c840e00d5261b9 < 032c59c7681c661b63123231824170c025afb7e7","Linux 6.14"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:46:17.742Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98693","references":[{"url":"https://git.kernel.org/stable/c/c444d2c17dc236680324fd989232199680a6c419"},{"url":"https://git.kernel.org/stable/c/2b5f976119d8f099a03cbf700df3d9c8690fe33d"},{"url":"https://git.kernel.org/stable/c/032c59c7681c661b63123231824170c025afb7e7"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.517Z","slug":"CVE-2026-98693","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nthunderbolt: Hold a router reference for each allocated HopID\n\ntb_stop() drops the reference to all DP tunnels but does not deactivate\nthem, thus nothing cancels a dprx_work still in flight (which holds its\nown tunnel reference) and the tunnel can outlive tb_switch_remove(). The\nHopID releases in tb_path_free() then operate on freed IDAs and trigger\nwarnings like\n\n  ida_free called for id=8 which is not allocated.\n\nThis can be triggered by unbinding the driver while a DP tunnel is still\nwaiting for the DPRX capabilities read to finish. On the Apple NHI\nunplugging the cable runs into just that reliably because the read can\nnever finish right now and because the unplug powers down the entire\nUSB4 complex and removes the NHI device.\n\nTake a router reference whenever an input or output HopID is allocated\nand drop it again after the HopID is released. This keeps the ports and\ntheir HopID IDAs alive for as long as they are used.\n\nThe KUnit tests allocate routers without ever registering their devices\nso initialize the embedded struct device there as well and drop its\ninitial reference when the test is finished.\n\n## Affected\n\n- `Linux >= d6d458d42e1e1544a18f37f1d5c840e00d5261b9 < c444d2c17dc236680324fd989232199680a6c419`\n- `Linux >= d6d458d42e1e1544a18f37f1d5c840e00d5261b9 < 2b5f976119d8f099a03cbf700df3d9c8690fe33d`\n- `Linux >= d6d458d42e1e1544a18f37f1d5c840e00d5261b9 < 032c59c7681c661b63123231824170c025afb7e7`\n- `Linux 6.14`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}