CVE-2026-68408

CVE-2026-68408

published August 10, 2026

CVSS
—
EPSS
0%
Percentile
5.8
In the wild
Unconfirmed
What it is

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

wifi: cfg80211: convert pmsr_free_wk to wiphy_work to fix deadlock

When a netlink socket that owns a PMSR session is closed,

cfg80211_release_pmsr() clears the request's nl_portid and queues

pmsr_free_wk to call cfg80211_pmsr_process_abort() asynchronously.

If the interface tears down concurrently, cfg80211_pmsr_wdev_down()

is called under wiphy_lock and calls cancel_work_sync(&pmsr_free_wk)

to wait for any running work. The work function acquires wiphy_lock

via guard(wiphy) before calling process_abort.

This is a deadlock: wdev_down holds wiphy_lock and blocks inside

cancel_work_sync(); pmsr_free_wk blocks trying to acquire that same

wiphy_lock. Neither thread can proceed.

The same deadlock is reachable from cfg80211_leave_locked(), which

calls cfg80211_pmsr_wdev_down() for all interface types under

wiphy_lock.

Fix this by converting pmsr_free_wk from a plain work_struct to a

wiphy_work. The wiphy_work dispatcher holds wiphy_lock when running

work items, so the explicit guard(wiphy) in the work function is no

longer needed. wiphy_work_cancel() can be called safely while holding

wiphy_lock - since wiphy_lock prevents the work from running

concurrently, wiphy_work_cancel() never blocks, eliminating the

deadlock.

Remove the cancel_work_sync() for pmsr_free_wk from the

NETDEV_GOING_DOWN handler. cfg80211_leave(), called unconditionally

just before it, already cancels any pending work under wiphy_lock

via wiphy_work_cancel() inside cfg80211_pmsr_wdev_down().

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00168 · 5.8th percentile
Published
2026-08-10T17:20Z
References (5)
EPSS history
Timeline
  • 10 AUG 12:04Z
    wifi: cfg80211: convert pmsr_free_wk to wiphy_work to fix deadlock
    cvelistv5