CVE-2026-74331

CVE-2026-74331

published August 15, 2026

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

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

firmware_loader: Fix recursive lock in device_cache_fw_images()

A recursive locking deadlock can occur in the firmware loader's power

management notification handler.

During system suspend or hibernation preparation, fw_pm_notify() calls

device_cache_fw_images(). This function acquires fw_lock to set the

firmware cache state to FW_LOADER_START_CACHE and then iterates over all

devices using dpm_for_each_dev() while still holding the lock.

For each device, dev_cache_fw_image() schedules asynchronous work to cache

the firmware. If memory allocation for the async work entry fails (e.g., in

out-of-memory conditions), async_schedule_node_domain() falls back to

executing the work function synchronously in the current thread.

The synchronous execution path (__async_dev_cache_fw_image() ->

cache_firmware() -> request_firmware() -> assign_fw()) attempts to acquire

fw_lock again. Since the current thread already holds fw_lock, this results

in a recursive locking deadlock.

Fix this by releasing fw_lock immediately after updating the cache state

and before calling dpm_for_each_dev(). The lock is only needed to protect

the state update. Concurrent firmware requests will correctly see the

FW_LOADER_START_CACHE state and use the piggyback mechanism, which is

independently protected by its own fwc->name_lock.

The record
Technical detail
CVSS
Not scored
CVSS v4.0
Not supplied
EPSS
0.00236 · 13.8th percentile
Published
2026-08-15T10:22Z
References (8)
EPSS history
Timeline
  • 15 AUG 05:58Z
    firmware_loader: Fix recursive lock in device_cache_fw_images()
    cvelistv5