CVE-2026-74575

CVE-2026-74575

High · published August 15, 2026

CVSS v3.1
8.8
EPSS
0%
Percentile
14.0
In the wild
Unconfirmed
What it is

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.

The record
Technical detail
CVSS v3.1
8.8 · HIGH
Vector
CVSS:3.1/AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00238 · 14.0th percentile
Published
2026-08-15T17:18Z
References (8)
EPSS history
Timeline
  • 15 AUG 12:28Z
    thunderbolt: Prevent XDomain delayed work use-after-free on disconnect
    cvelistv5