CVE-2026-90284
NoneCVSS
—
EPSS
0.2%
Published
Sep 17, 2026
CISA due date
—
Cloudanix analysis
A flaw in how Linux loads firmware files could let a local attacker crash the computer or gain higher privileges.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free in the Linux kernel firmware_loader where a completed sysfs fallback request can be queued onto pending_fw_head, leaving a dangling pointer to freed memory that is dereferenced on subsequent list operations.
Why it matters to the business
Linux systems may experience kernel crashes, memory corruption, or potential local privilege escalation, disrupting services and requiring urgent patching across server and embedded fleets.
How an attack unfolds
An attacker with local access triggers the race by allowing a userspace firmware helper to complete a request via the loading attribute immediately after device_add but before the entry is queued, causing the kernel to later dereference freed memory during list validation or abort handling.
How to fix it
Update to a Linux kernel version containing the fix that prevents queuing already-completed fw_priv entries and returns success early from the fallback path when the request is done after device_add.
How to confirm the fix worked
Confirm the kernel source contains the check that returns success without queuing when the request state is already DONE after device_add, and verify pending_fw_head only holds active requests.
Typical attack path
- Obtain local code execution on a Linux system
- Trigger firmware fallback loading via a device that uses sysfs interface
- Race the completion write to the loading attribute against internal queuing
- Force subsequent fallback request or suspend/reboot handling to dereference the freed list entry
- Achieve memory corruption for denial of service or privilege escalation
How to detect it
Inspect kernel logs for oops or list corruption messages referencing firmware_loader, pending_fw_head, or fw_load_sysfs_fallback during device initialization or reboot sequences.
What your security team should do
- Prioritize kernel updates on all internet-facing and multi-tenant Linux hosts
- Review any custom firmware loading helpers that interact with sysfs loading attributes
- Monitor for kernel oops or list corruption in firmware paths after applying updates
The record
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.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|