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

thunderbolt: Prevent XDomain delayed work use-after-free on disconnect

tb_xdp_handle_request() runs on system_wq and queues
xd->state_work via queue_delayed_work() in three request handlers:
PROPERTIES_CHANGED_REQUEST, UUID_REQUEST (via start_handshake),
and LINK_STATE_CHANGE_REQUEST. Similarly, update_xdomain() queues
xd->properties_changed_work when local properties change.

Concurrently, tb_xdomain_remove() calls stop_handshake() which does
cancel_delayed_work_sync() on both delayed works. Later,
tb_xdomain_unregister() calls device_unregister() which eventually
frees the xdomain. Since commit 559c1e1e0134 ("thunderbolt: Run
tb_xdp_handle_request() in system workqueue") moved the request
handler off tb->wq, the handler and the remove path are no longer
serialized. If queue_delayed_work() executes after
cancel_delayed_work_sync() but before the xdomain is freed, the
delayed work fires on a freed object.

Add xd->removing that tb_xdomain_remove() sets under xd->lock
before calling stop_handshake(). Each external queue site holds
the same lock and checks removing before calling
queue_delayed_work(). This provides the mutual exclusion needed:
either the queue site acquires the lock first and queues work that
the subsequent cancel will see, or the remove path acquires the
lock first and the queue site observes removing == true and skips
the queue.
Published: 2026-08-15
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

This flaw occurs in the Thunderbolt driver when a delayed work task is queued after the domain is removed. The task runs on a system workqueue and accesses a freed domain structure, leading to a use‑after‑free. The immediate effect is memory corruption that could crash the kernel or allow an attacker to execute code if the freed memory is reused. The weakness is a classic use‑after‑free (CWE‑416).

Affected Systems

All Linux kernel implementations that include the Thunderbolt subsystem before the commit that adds the removal flag and lock protection are vulnerable. No specific release numbers are listed, so any kernel build with the pre‑commit code for tb_xdp_handle_request, tb_xdomain_remove, and tb_xdomain_unregister is affected. Systems with Thunderbolt devices connected to the kernel are exposed.

Risk and Exploitability

The flaw requires a local attacker with the ability to trigger a Thunderbolt disconnect and schedule delayed work. The EPSS score is not available and the vulnerability is not listed in the CISA KEV catalog, indicating limited evidence of active exploitation. Nevertheless, a use‑after‑free can lead to arbitrary code execution or denial of service, which is typically classified as high severity. The lack of a published CVSS score does not diminish the risk derived from the nature of the exploitation path.

Generated by OpenCVE AI on August 15, 2026 at 14:48 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that contains the fix for the thunderbolt UAF, applying the vendor‑supplied security update.
  • If a kernel update is not immediately possible, disable the thunderbolt driver by removing the module or disabling the Thunderbolt plug in the BIOS or kernel boot parameters.
  • Apply a temporary upstream patch that introduces the xb->removing flag and lock protection until a full update is available.
  • Verify that the kernel configuration protects the removal path from race conditions by ensuring the lock is held whenever a delayed work task is queued.

Generated by OpenCVE AI on August 15, 2026 at 14:48 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sat, 15 Aug 2026 15:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-416

Sat, 15 Aug 2026 12:45:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: thunderbolt: Prevent XDomain delayed work use-after-free on disconnect tb_xdp_handle_request() runs on system_wq and queues xd->state_work via queue_delayed_work() in three request handlers: PROPERTIES_CHANGED_REQUEST, UUID_REQUEST (via start_handshake), and LINK_STATE_CHANGE_REQUEST. Similarly, update_xdomain() queues xd->properties_changed_work when local properties change. Concurrently, tb_xdomain_remove() calls stop_handshake() which does cancel_delayed_work_sync() on both delayed works. Later, tb_xdomain_unregister() calls device_unregister() which eventually frees the xdomain. Since commit 559c1e1e0134 ("thunderbolt: Run tb_xdp_handle_request() in system workqueue") moved the request handler off tb->wq, the handler and the remove path are no longer serialized. If queue_delayed_work() executes after cancel_delayed_work_sync() but before the xdomain is freed, the delayed work fires on a freed object. Add xd->removing that tb_xdomain_remove() sets under xd->lock before calling stop_handshake(). Each external queue site holds the same lock and checks removing before calling queue_delayed_work(). This provides the mutual exclusion needed: either the queue site acquires the lock first and queues work that the subsequent cancel will see, or the remove path acquires the lock first and the queue site observes removing == true and skips the queue.
Title thunderbolt: Prevent XDomain delayed work use-after-free on disconnect
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-08-15T12:28:13.187Z

Reserved: 2026-08-15T05:44:03.917Z

Link: CVE-2026-74575

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T13:18:03.173

Modified: 2026-08-15T13:18:03.173

Link: CVE-2026-74575

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-15T15:00:04Z

Weaknesses