{"id":"CVE-2026-98691","kind":"vulnerability","aliases":["CVE-2026-98691"],"related":[],"title":"Linux kernel: Thunderbolt domain teardown leaves DisplayPort work running after shutdown","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nthunderbolt: Tear down inactive DP tunnels when the domain is stopped\n\ntb_stop() only tears down DMA tunnels so a DP tunnel that is still\nwaiting for dprx_work to complete keeps that work queued while the\nrouters are removed and the control channel is stopped. The work only\nstops once the DPRX timeout has passed and because it requeues itself\nuntil then the flush_workqueue() in tb_domain_remove() won't wait for its\nfinal run. The callback then runs against a domain that is already torn\ndown. A reference to that domain is kept so the completion waiting for\nthat domain to disappear in unbind will block until the timeout is\neventually reached.\n\nTear down DP tunnels that are not active yet as well which also cancels\nthat work. Tunnels for displays that are already alive are untouched and\nkeep working.","summary":"When the Thunderbolt domain stops, a DisplayPort tunnel that has not yet come up keeps its completion work queued against a domain that is already torn down. The work can run against freed state and holds a reference that delays driver unbind until a timeout expires.","severity":"unknown","cvss":null,"epss":null,"exploited":false,"exploited_at":null,"products":[],"ecosystems":[],"tags":["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:03+00:00","updated_at":"2026-10-25T05:19:03+00:00","category":"runtime","confidence":0.4,"triage":{"at":"2026-10-25T05:19:03Z","model":"claude-haiku-5-5","output":{"fix":"unknown","reach":"local","title":"Linux kernel: Thunderbolt domain teardown leaves DisplayPort work running after shutdown","impact":"low","summary":"When the Thunderbolt domain stops, a DisplayPort tunnel that has not yet come up keeps its completion work queued against a domain that is already torn down. The work can run against freed state and holds a reference that delays driver unbind until a timeout expires.","category":"runtime","nicknames":[],"who_cares":["linux-kernel","thunderbolt","usb4"],"confidence":0.4,"needs_auth":"no","worst_case":"kernel use-after-teardown and delayed driver unbind; code execution not stated","analyst_note":"Check the upstream kernel commit and stable backports for the fixed kernel versions and the exact memory-safety consequence.","how_to_check":"unknown","needs_analyst":true,"not_affected_if":["no-thunderbolt-hardware"],"who_is_affected":"Systems with Thunderbolt or USB4 ports running a Linux kernel with the thunderbolt driver, where a DisplayPort tunnel is being set up while the domain is stopped. Systems without Thunderbolt hardware, or with the thunderbolt driver not loaded, are not affected. The sources do not say which kernel versions carry the fix.","user_interaction":"unknown","needs_special_setup":"unknown","severity_if_unknown":"unknown"},"cost_usd":0.000599,"input_tokens":3506,"output_tokens":496,"severity_before":"unknown"},"analyst_status":null,"analyst_note":null,"search":"'-2026':13A,16A '-98691':14A,17A 'activ':202C 'aliv':217C 'alreadi':48B,166C,216C 'also':207C 'block':188C 'callback':158C 'cancel':208C 'channel':123C 'come':36B 'complet':40B,110C,178C 'control':122C 'cve':12A,15A 'delay':63B 'disappear':184C 'display':213C 'displayport':7A,30B 'dma':96C 'domain':4A,27B,45B,88C,148C,163C,173C,182C 'dp':84C,100C,197C 'dprx':107C,132C 'driver':64B 'eventu':193C 'expir':69B 'final':155C 'flush':144C 'follow':75C 'freed':56B 'hold':59B 'inact':83C 'keep':38B,111C,221C 'kept':175C 'kernel':2A,20B,73C 'leav':6A 'linux':1A,19B,72C 'linux-kernel':18B 'pass':135C 'queu':42B,114C 'reach':194C 'refer':61B,170C 'remov':119C,149C 'requeu':139C 'resolv':79C 'router':117C 'run':9A,54B,156C,160C 'runtim':21B 'shutdown':11A 'state':57B 'still':104C 'stop':28B,90C,92C,125C,129C 'tb':91C,147C 'tear':81C,94C,195C 'teardown':5A 'thunderbolt':3A,22B,26B,80C 'timeout':68B,133C,191C 'torn':49B,167C 'tunnel':31B,85C,97C,101C,198C,211C 'unbind':65B,186C 'untouch':219C 'usb4':23B 'vulner':76C 'wait':105C,152C,179C 'well':205C 'won':150C 'work':8A,41B,52B,108C,113C,127C,210C,222C 'workqueu':145C 'yet':35B,203C","nicknames":[],"mitigations":[],"who_affected":"Systems with Thunderbolt or USB4 ports running a Linux kernel with the thunderbolt driver, where a DisplayPort tunnel is being set up while the domain is stopped. Systems without Thunderbolt hardware, or with the thunderbolt driver not loaded, are not affected. The sources do not say which kernel versions carry the fix.","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-98691","url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98691","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"}