Vulnerability · Published Aug 15, 2026 · Assigned by Linux
CVE-2026-74331firmware_loader: Fix recursive lock in device_cache_fw_images()
Unrated
In plain English
A security flaw in Linux from Linux. There are no confirmed reports of exploitation so far. The chance it is exploited in the next 30 days is estimated at 0.2% (higher than 15% of all known vulnerabilities). Fixed versions are available - upgrade the affected package.
Official description
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.
Affected packages & fixed versions
| Ecosystem | Package | Fixed in | Advisory |
|---|---|---|---|
| Debian:12 | linux | 6.1.180-1 | DEBIAN-CVE-2026-74331 |
| Debian:13 | linux | 6.12.100-1 | DEBIAN-CVE-2026-74331 |
| Debian:14 | linux | 7.1.5-1 | DEBIAN-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux | 5.15.0-198.208 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux | 6.8.0-147.147 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux | 7.0.0-38.38 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-allwinner-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-aws | 5.15.0-1117.124 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-aws | 6.8.0-1067.70 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-aws | 7.0.0-1014.14 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-aws-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-aws-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-aws-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-aws-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-aws-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-aws-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-aws-7.0 | 7.0.0-1014.14~24.04.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure | 5.15.0-1123.132 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure | 6.8.0-1071.79 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-azure | 7.0.0-1017.17 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-6.11 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-7.0 | 7.0.0-1017.17~24.04.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-fde | 5.15.0-1122.131 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-fde | 6.8.0-1069.76 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-azure-fde | 7.0.0-1016.16 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-fde-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-fde-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-fde-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-fde-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-azure-fde-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-fde-7.0 | 7.0.0-1016.16~24.04.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-nvidia | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-azure-nvidia-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-gcp | 5.15.0-1118.128 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-gcp | 6.8.0-1071.79 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-gcp | 7.0.0-1014.14 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-gcp-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-gcp-6.11 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-gcp-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-gcp-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-gcp-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-gcp-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-gcp-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-gcp-7.0 | 7.0.0-1014.14~24.04.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-gke | 5.15.0-1113.119 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-gke | 6.8.0-1066.74 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-gke | 7.0.0-1008.9 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-gkeop | 5.15.0-1100.108 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-gkeop | 6.8.0-1052.56 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-hwe-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-hwe-6.11 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-hwe-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-hwe-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-hwe-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-hwe-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-hwe-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-hwe-7.0 | 7.0.0-38.38~24.04.4 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-ibm | 5.15.0-1111.115 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-ibm | 6.8.0-1067.68 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-ibm | 7.0.0-1015.15 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-ibm-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-intel-iot-realtime | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-intel-iotg | 5.15.0-1112.118 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-kvm | 5.15.0-1109.114 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-lowlatency | 5.15.0-195.205 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-lowlatency | 6.8.0-147.147.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-lowlatency-hwe-6.11 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-lowlatency-hwe-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-nvidia | 5.15.0-1112.113 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-nvidia | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-nvidia | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-nvidia-6.11 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-nvidia-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-nvidia-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-nvidia-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-nvidia-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-nvidia-7.0 | 7.0.0-1024.25~24.04.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-nvidia-bos | 7.0.0-2022.23 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-nvidia-lowlatency | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra | 5.15.0-1070.72 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-nvidia-tegra | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-nvidia-tegra-igx | 5.15.0-1059.59 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-oem-5.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-oem-6.0 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-oem-6.1 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oem-6.11 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oem-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oem-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-oem-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oem-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-oem-7.0 | 7.0.0-1015.15 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-oracle | 5.15.0-1114.120 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oracle | 6.8.0-1064.67 | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-oracle | 7.0.0-1013.13 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oracle-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oracle-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-oracle-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-oracle-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-oracle-7.0 | 7.0.0-1013.13~24.04.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-raspi | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-raspi | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-raspi | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-raspi-realtime | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-realtime | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-realtime | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-realtime | 7.0.0-38.38.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-riscv | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-riscv | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:26.04:LTS | linux-riscv | 7.0.0-38.38.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-riscv-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-riscv-6.14 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-riscv-6.17 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-riscv-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-riscv-6.8 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-riscv-7.0 | 7.0.0-38.38.1~24.04.1 | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-starfive-5.19 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-starfive-6.2 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-starfive-6.5 | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-vmware | 6.8.0-1008.8 | UBUNTU-CVE-2026-74331 |
| Ubuntu:24.04:LTS | linux-xilinx | no fix listed | UBUNTU-CVE-2026-74331 |
| Ubuntu:22.04:LTS | linux-xilinx-zynqmp | 5.15.0-1080.84 | UBUNTU-CVE-2026-74331 |
Affected products (as reported)
| Vendor | Product | Versions |
|---|---|---|
| Linux | Linux | ac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before 806cb8fabfde7f830da5ae87777d52fdf50c4774ac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before 7865a1bfd20d10c03b083a5fc392d907ca5099b3ac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before 490b0385e4cfac691f7b18dde821c13e77b4770bac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before 38149b57427c736c08d9aa4c7b87deacd53e9e63ac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before a5b2a68a391b05d54552f13548a72a46c65006f7ac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before f25d6e4ec4c257030592bd671f113cf9584c52f0ac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before c0f2dedd41fe14dbe076c1672214802fb42cd8c8ac39b3ea73aacde876d1d5ee1ca3e2719f771482 – before d3ec78f8f8d48a04a9fac38d47275c34645e5103 |
| Linux | Linux | 3.7 |
References
- 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