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

Published Aug 15, 2026
·
Updated

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

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

tbxdphandlerequest() runs on systemwq and queues xd->statework via queuedelayedwork() in three request handlers: PROPERTIESCHANGEDREQUEST, UUIDREQUEST (via starthandshake), and LINKSTATECHANGEREQUEST. Similarly, updatexdomain() queues xd->propertieschangedwork when local properties change.

Concurrently, tbxdomainremove() calls stophandshake() which does canceldelayedworksync() on both delayed works. Later, tbxdomainunregister() calls deviceunregister() which eventually frees the xdomain. Since commit 559c1e1e0134 ("thunderbolt: Run tbxdphandlerequest() in system workqueue") moved the request handler off tb->wq, the handler and the remove path are no longer serialized. If queuedelayedwork() executes after canceldelayedworksync() but before the xdomain is freed, the delayed work fires on a freed object.

Add xd->removing that tbxdomainremove() sets under xd->lock before calling stophandshake(). Each external queue site holds the same lock and checks removing before calling queuedelayedwork(). 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.

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade thunderbolt (kernel) to a version that resolves this vulnerability.

    Patch 559c1e1e0134
  2. Configuration

    Apply the fix so tb_xdomain_remove() takes xd->lock before removing/frees the xdomain and before calling stop_handshake(); ensure the delayed-work queue path (which uses queue_delayed_work()) acquires the same lock and checks/removes the xd by observing removing==true to skip queuing, preventing delayed work from firing on a freed object.

    tb_xdomain_remove()/XDomain removal flow xd->lock mutual exclusion around stop_handshake()/delayed work cancellation and freeing = Use xd->lock to serialize delayed work queuing vs removal (set removing under lock; queue_delayed_work() skips when removing==true).

Event History

Aug 15, 2026
CVE Published
via MITRE·12:28 PM
Data Sourced
via MITRE·12:28 PM
Description
Free Weekly Intel

Don't miss critical vulnerabilities

Join thousands of security professionals who receive our weekly digest of trending CVEs, zero-days, and exploited vulnerabilities.

No spam. Unsubscribe anytime.

Frequently Asked Questions

1

What is the severity of CVE-2026-74575?

CVE-2026-74575 has a risk score of 51, indicating a moderate severity level.

2

How do I fix CVE-2026-74575?

To fix CVE-2026-74575, update your Linux kernel to the version that includes the patch addressing this vulnerability.

3

What type of vulnerability is CVE-2026-74575?

CVE-2026-74575 is classified as a use-after-free vulnerability in the Linux kernel's Thunderbolt subsystem.

4

What systems are affected by CVE-2026-74575?

CVE-2026-74575 affects systems running vulnerable versions of the Linux kernel that utilize the Thunderbolt feature.

5

What impact does CVE-2026-74575 have on security?

CVE-2026-74575 could allow an attacker to exploit the delayed work system, potentially leading to arbitrary code execution.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203