CVE-2026-90284

firmware_loader: do not queue completed sysfs fallback requests

State
Published
Severity
Not scored
Published
Sep 17, 2026
Updated
Oct 19, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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

firmware_loader: do not queue completed sysfs fallback requests

fw_load_sysfs_fallback() calls device_add() before adding the fw_priv to pending_fw_head. device_add() publishes the fallback loading interface, so a userspace helper which discovers the device by scanning sysfs can write 0 to the loading attribute and complete the request before it is queued as pending.

In that interleaving firmware_loading_store() calls fw_state_done() while pending_list still points to itself, so it cannot remove an entry from pending_fw_head. The subsequent unconditional list_add() then queues an already-completed fw_priv. Once the request is released, pending_fw_head can retain a pointer to freed memory and the next fallback request can fault while validating the list.

Only in-flight fallback requests need suspend or reboot abort handling. If the request is already DONE after device_add(), return success from the fallback path without sending another uevent, waiting again, or queueing it as pending. This preserves the invariant that pending_fw_head contains only active fallback requests.

Scores

The record has no CVSS score.

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • ecb739cf15a9bae040ce6b60209b78b92512d120 to before c8b97c5130f27b64fa2cfe1aa4bebb13f724c6c7Affected
  • 75d95e2e39b27f733f21e6668af1c9893a97de5e to before 93a2385730540105df8524447dcc11309ad280f9Affected
  • 75d95e2e39b27f733f21e6668af1c9893a97de5e to before ea33fac0df7fe7b49a4b27acb83e227b82317d1dAffected
  • 75d95e2e39b27f733f21e6668af1c9893a97de5e to before 5a250bff75a446374c05622973b18b4ab662b504Affected
  • 75d95e2e39b27f733f21e6668af1c9893a97de5e to before 85aeb8fc61839098ae0942ccba86e669c08e75d4Affected
  • 75d95e2e39b27f733f21e6668af1c9893a97de5e to before 6eaa632d0ed7bbb84f9cb670e5ec4e2cecf4cc7bAffected
  • 75d95e2e39b27f733f21e6668af1c9893a97de5e to before fb4824880b0dba0e7b3a497c46c642f979630392Affected
  • 75d95e2e39b27f733f21e6668af1c9893a97de5e to before b48373c901951fad1a26bd7c33ad91172b3945b5Affected
  • 67cf0fbcac0d42d4d4686cddc1e39f465bbfec37Affected
  • d09639528b66b5c7c20dc8f7fb8928aacabd40bbAffected
  • c14a54675db7131791402fa22fb0fa6da1f5fb66Affected
  • 5.10.58 to before 5.10.270Affected
  • 4.19.203 to before 4.20Affected
  • 5.4.140 to before 5.5Affected
  • 5.13.10 to before 5.14Affected
LinuxLinux
  • 5.14Affected
  • before 5.14Not affected
  • 5.10.270 through 5.10.*Not affected
  • 5.15.221 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.110 through 6.12.*Not affected
  • 6.18.52 through 6.18.*Not affected
  • 7.2.6 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.