-

CVE-2026-74331

firmware_loader: Fix recursive lock in device_cache_fw_images()

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.
Daten sind bereitgestellt durch das CVE Programm von einer CVE Numbering Authority (CNA) (Unstrukturiert).
HerstellerLinux
Produkt Linux
Default Statusunaffected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < 806cb8fabfde7f830da5ae87777d52fdf50c4774
Status affected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < 7865a1bfd20d10c03b083a5fc392d907ca5099b3
Status affected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < 490b0385e4cfac691f7b18dde821c13e77b4770b
Status affected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < 38149b57427c736c08d9aa4c7b87deacd53e9e63
Status affected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < a5b2a68a391b05d54552f13548a72a46c65006f7
Status affected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < f25d6e4ec4c257030592bd671f113cf9584c52f0
Status affected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < c0f2dedd41fe14dbe076c1672214802fb42cd8c8
Status affected
Version ac39b3ea73aacde876d1d5ee1ca3e2719f771482
Version < d3ec78f8f8d48a04a9fac38d47275c34645e5103
Status affected
HerstellerLinux
Produkt Linux
Default Statusaffected
Version 3.7
Status affected
Version 0
Version < 3.7
Status unaffected
Version <= 5.10.*
Version 5.10.261
Status unaffected
Version <= 5.15.*
Version 5.15.212
Status unaffected
Version <= 6.1.*
Version 6.1.178
Status unaffected
Version <= 6.6.*
Version 6.6.145
Status unaffected
Version <= 6.12.*
Version 6.12.97
Status unaffected
Version <= 6.18.*
Version 6.18.40
Status unaffected
Version <= 7.1.*
Version 7.1.5
Status unaffected
Version <= *
Version 7.2
Status unaffected
VulnDex Vulnerability Enrichment
Diese Information steht angemeldeten Benutzern zur Verfügung. Login Login
Zu dieser CVE wurde keine Warnung gefunden.
EPSS Metriken
Typ Quelle Score Percentile
EPSS FIRST.org 0.19% 0.089
CVSS Metriken
Quelle Base Score Exploit Score Impact Score Vector String
Es wurden noch keine Informationen zu CWE veröffentlicht.
https://git.kernel.org/stable/c/806cb8fabfde7f830da5ae87777d52fdf50c4774
https://git.kernel.org/stable/c/7865a1bfd20d10c03b083a5fc392d907ca5099b3
https://git.kernel.org/stable/c/490b0385e4cfac691f7b18dde821c13e77b4770b
https://git.kernel.org/stable/c/38149b57427c736c08d9aa4c7b87deacd53e9e63
https://git.kernel.org/stable/c/a5b2a68a391b05d54552f13548a72a46c65006f7
https://git.kernel.org/stable/c/f25d6e4ec4c257030592bd671f113cf9584c52f0
https://git.kernel.org/stable/c/c0f2dedd41fe14dbe076c1672214802fb42cd8c8
https://git.kernel.org/stable/c/d3ec78f8f8d48a04a9fac38d47275c34645e5103