{"id":"CVE-2026-98693","kind":"vulnerability","aliases":["CVE-2026-98693"],"related":[],"title":"Linux kernel: Thunderbolt driver unbind can free HopIDs twice","description":"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_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.","summary":"When the Thunderbolt driver is unbound while a DisplayPort tunnel is still waiting for its DPRX capability read, the tunnel can outlive the router, so HopID releases operate on freed IDAs and trigger kernel warnings. The sources do not describe a confirmed attacker-controlled exploit path; the bug is a use-after-teardown triggered by unplugging or unbinding hardware.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["apple-hardware","linux-kernel","runtime","thunderbolt","usb4"],"not_affected_if":["no-thunderbolt-hardware"],"how_to_check":null,"fix":null,"status":"open","published_at":"2026-10-18T16:17:22+00:00","first_seen_at":"2026-10-23T21:57:16+00:00","triaged_at":"2026-10-25T05:19:02+00:00","updated_at":"2026-10-25T05:19:02+00:00","category":"runtime","confidence":0.5,"triage":{"at":"2026-10-25T05:19:02Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel: Thunderbolt driver unbind can free HopIDs twice","impact":"low","summary":"When the Thunderbolt driver is unbound while a DisplayPort tunnel is still waiting for its DPRX capability read, the tunnel can outlive the router, so HopID releases operate on freed IDAs and trigger kernel warnings. The sources do not describe a confirmed attacker-controlled exploit path; the bug is a use-after-teardown triggered by unplugging or unbinding hardware.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","thunderbolt","usb4","apple-hardware"],"confidence":0.5,"needs_auth":"unknown","worst_case":"kernel warnings and freed-memory use during Thunderbolt teardown; code execution not described","analyst_note":"Check the upstream kernel commit and stable backports at the NVD link for affected version ranges and the fixed kernel version; the sources give no severity or exploitation detail.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["no-thunderbolt-hardware"],"who_is_affected":"Systems running a Linux kernel with the Thunderbolt/USB4 driver, especially Apple hardware with the NHI device, where unplugging a cable during a DisplayPort tunnel setup reliably triggers the path. Systems without Thunderbolt or USB4 hardware are not in the described path. The sources do not give the affected kernel version range.","user_interaction":"yes","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000644,"input_tokens":3611,"output_tokens":566,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':11A,14A '-98693':12A,15A '8':163C 'aliv':254C 'alloc':103C,167C,236C,265C 'appl':17B,192C 'apple-hardwar':16B 'attack':68B 'attacker-control':67B 'bug':73B 'cabl':196C 'call':160C 'cancel':121C 'capabl':41B,186C 'complex':219C 'confirm':66B 'control':69B 'cve':10A,13A 'deactiv':117C 'describ':64B 'devic':224C,271C,277C 'displayport':33B 'dp':112C,178C 'dprx':40B,123C,185C 'driver':4A,28B,175C 'drop':107C,238C,282C 'embed':275C 'entir':217C 'ever':268C 'exploit':70B 'finish':189C,207C,290C 'flight':127C 'follow':91C 'free':7A,148C,159C 'freed':54B,152C 'hardwar':18B,85B 'hold':97C,129C 'hopid':8A,50B,104C,143C,234C,243C,252C 'id':162C 'ida':55B,153C,158C,253C 'initi':273C,284C 'input':231C 'keep':247C 'kernel':2A,21B,58B,89C 'kunit':263C 'like':157C 'linux':1A,20B,88C 'linux-kernel':19B 'long':257C 'never':206C 'nhi':193C,223C 'noth':120C 'oper':52B,150C 'outliv':46B,138C 'output':233C 'path':71B,147C 'port':249C 'power':214C 'read':42B,187C,204C 'refer':100C,109C,133C,228C,285C 'regist':269C 'releas':51B,144C,245C 'reliabl':201C 'remov':141C,221C 'resolv':95C 'right':208C 'router':48B,99C,227C,266C 'run':197C 'runtim':22B 'sourc':61B 'still':36B,125C,181C 'stop':106C 'struct':276C 'switch':140C 'take':225C 'tb':105C,139C,146C 'teardown':79B 'test':264C,288C 'thunderbolt':3A,23B,27B,96C 'thus':119C 'trigger':57B,80B,155C,171C 'tunnel':34B,44B,113C,132C,136C,179C 'twice':9A 'unbind':5A,84B,173C 'unbound':30B 'unplug':82B,194C,213C 'usb4':24B,218C 'use':77B,261C 'use-after-teardown':76B 'vulner':92C 'wait':37B,182C 'warn':59B,156C 'well':280C 'whenev':229C 'without':267C 'work':124C","nicknames":[],"mitigations":[],"who_affected":"Systems running a Linux kernel with the Thunderbolt/USB4 driver, especially Apple hardware with the NHI device, where unplugging a cable during a DisplayPort tunnel setup reliably triggers the path. Systems without Thunderbolt or USB4 hardware are not in the described path. The sources do not give the affected kernel version range.","tier":"C","verified":{},"analyst_revisit_at":null,"first_public_at":"2026-10-18T16:17:22+00:00","kev":null,"cvss_vector":null,"cvss_by":null,"poc_count":0,"sources":[{"source":"nvd","external_id":"CVE-2026-98693","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98693","severity":null,"published_at":"2026-10-18T16:17:22+00:00","modified_at":"2026-10-19T10:19:33+00:00","first_seen_at":"2026-10-23T21:57:16+00:00","fetched_at":"2026-10-23T22:28:56+00:00","note":null}],"documents":[],"notice":"Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai"}