CVE-2026-90421
NoneCVSS
—
EPSS
0.2%
Published
Sep 17, 2026
CISA due date
—
Cloudanix analysis
A timing bug in Linux device handling could let the system crash or become unstable when IDs are added or removed at the same time as new hardware is detected.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- Moderate
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Medium
What it actually does
Use-after-free in PCI dynamic ID handling: remove_id_store() can free a dynid node while pci_match_device() still holds a reference without the dynids.lock held, allowing concurrent probe to dereference freed memory.
Why it matters to the business
Linux systems may experience kernel crashes or memory corruption during hot-plug or dynamic device ID operations, causing downtime on servers, embedded devices, and cloud instances.
How an attack unfolds
An attacker with local access triggers concurrent calls to remove_id_store() and a PCI probe path so that pci_match_device() reads a freed dynid structure, leading to a use-after-free that may be leveraged for denial of service or further kernel exploitation.
How to fix it
Apply the upstream kernel commit that copies the dynid under lock in pci_match_device() and ensures the id parameter lifetime is limited to the probe window; rebuild and reboot to the patched kernel.
How to confirm the fix worked
Confirm the fix is present by inspecting the pci_match_device() implementation for the dynid copy under dynids.lock; test by exercising concurrent add/remove/probe operations without triggering UAF.
Typical attack path
- Obtain local access on a Linux system exposing dynamic PCI ID interfaces
- Race remove_id_store() with a concurrent device probe that calls pci_match_device()
- Trigger use-after-free by dereferencing the freed dynid node
- Escalate or crash depending on exploitation of the freed memory
How to detect it
Search kernel logs for PCI dynid-related slab use-after-free warnings, oops traces mentioning pci_match_device or remove_id_store, and any concurrent sysfs writes to new_id/remove_id during device probe events.
What your security team should do
- Prioritize patching production kernels that expose dynamic PCI ID sysfs interfaces
- Monitor for kernel oops or slab corruption logs related to PCI dynids
- Restrict unprivileged access to PCI ID modification sysfs entries until patched
The record
In the Linux kernel, the following vulnerability has been resolved: PCI: Fix UAF when probe runs concurrent to dyn ID removal Dynamic IDs are only guaranteed to be valid when dynids.lock is held, as remove_id_store() can free the node. Thus, make a copy in pci_match_device(). Also, clarify that the id parameter is only valid during probe.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|