# CVE-2026-98689: thunderbolt: Don't access a DP tunnel after its DPRX read was canceled

> A race condition in the Linux kernel Thunderbolt driver allows accessing a torn-down DP tunnel, potentially causing a system crash during suspend.

- **Severity:** Not scored
- **Exploited in the wild:** Not known
- **Login needed:** Not needed
- **Attackable:** Local or same network only
- **Victim action needed:** Not needed
- **Fix available:** Yes
- **Published:** 18 Oct 2026
- **Updated:** 19 Oct 2026
- **Also known as:** BELL-CVE-2026-98689, DEBIAN-CVE-2026-98689, GHSA-8x4h-8gwm-w6jp, UBUNTU-CVE-2026-98689

## What is CVE-2026-98689?

CVE-2026-98689 is a vulnerability in Linux, published on 18 Oct 2026. It can only be exploited from the same machine or local network, with no action from the victim.

### Official description

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

thunderbolt: Don't access a DP tunnel after its DPRX read was canceled

tb_dp_dprx_work() checks ->dprx_canceled before it takes tb->lock so it
misses a tb_dp_dprx_stop() that could not cancel the already running
work. It then polls the DPRX capabilities and runs the callback for a
tunnel that has already been torn down while the domain is suspending or
going away.

This can be hit by cancelling the DPRX read from outside the ordered
tb->wq: During suspend tb_disconnect_and_release_dp() does just this and
with a later patch tb_stop() will do it as well. The latter in combination
with the Apple NHI where the DPRX read never completed is how I hit
this.

Check the flag with tb->lock held instead and check it again in
tb_dp_tunnel_active() because the callback runs after the lock has been
dropped again.

Also clear the flag in tb_dp_dprx_start() so that it only ever describes
the work that is currently in flight.

## Which versions are affected by CVE-2026-98689?


## How do I fix CVE-2026-98689?

Apply the vendor's patch.

## Is CVE-2026-98689 being exploited?

There is no known exploitation of CVE-2026-98689 in the wild and no public exploit code.

## Fix prompt for AI coding agents

```text
Check this codebase for CVE-2026-98689 and fix it if it is affected.

What it is: CVE-2026-98689 is a vulnerability in Linux, published on 18 Oct 2026. It can only be exploited from the same machine or local network, with no action from the victim.
Exploitation: There is no known exploitation of CVE-2026-98689 in the wild and no public exploit code.

Affected product: Linux. No package-level version data is available, so check the vendor advisory linked from the reference page.

Task:
1. Search the dependency manifests and lockfiles (for example package.json, package-lock.json, requirements.txt, poetry.lock, uv.lock, pom.xml, build.gradle, go.mod, Cargo.lock, Gemfile.lock) and any Dockerfiles for the affected packages, including transitive dependencies.
2. If an affected version is in use, upgrade it to the fixed version for its release line with the project's package manager, so the lockfile is regenerated. Prefer the smallest upgrade that fixes it.
3. If there is no fix, or the upgrade would break the build, do not guess: explain the risk and the safest workaround instead.
4. Run the tests and summarise what changed and why.
5. If nothing in the project is affected, say so and change nothing.

Reference: https://insights.sbomify.com/CVE-2026-98689/ (Markdown: https://insights.sbomify.com/CVE-2026-98689/index.md)
```

## Sources

- CVE record: https://www.cve.org/CVERecord?id=CVE-2026-98689
- NVD: https://nvd.nist.gov/vuln/detail/CVE-2026-98689
- OSV: https://osv.dev/vulnerability/CVE-2026-98689

---
From sbomify Insights: https://insights.sbomify.com/CVE-2026-98689/
Summaries are generated and may contain mistakes; the official description above is the record.
