CVE-2026-98670
NoneCVSS
—
EPSS
0.2%
Published
Oct 18, 2026
CISA due date
—
Cloudanix analysis
A mistake in how certain Xilinx hardware is cleaned up when removed from a Linux computer could make the system crash or become unstable.
- Exploitation
- Local Privilege
- Attacker needs
- Local User
- Complexity
- High
- Impact
- Full Compromise
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Patch
- Effort
- Medium
- Patch risk
- Low
What it actually does
Use-after-free in the Xilinx XADC driver caused by the alarm IRQ handler scheduling zynq_unmask_work after the xadc structure is freed, due to devm callback registration occurring after devm_request_irq.
Why it matters to the business
Recent low-risk kernel flaw affecting Linux systems with Xilinx Zynq hardware; could cause crashes or memory corruption during driver unload on embedded or industrial devices, with minimal active exploitation risk five days after disclosure.
How an attack unfolds
An attacker triggers device unbind or module removal while the alarm IRQ is active, allowing the scheduled delayed work to run after the structure has been freed and resulting in memory corruption.
How to fix it
Register the devm callback before devm_request_irq in the driver so teardown frees the IRQ first; apply the upstream kernel fix once released in the affected branch.
How to confirm the fix worked
Inspect the xilinx-xadc driver source for devm registration ordering before and after the patch; perform repeated bind/unbind cycles while the alarm IRQ is active to confirm no post-free work execution.
Typical attack path
- Locate a Linux system exposing the xilinx-xadc driver
- Trigger unbind or removal of the ADC device
- Ensure the alarm IRQ handler has queued the unmask work via schedule_delayed_work
- Trigger execution of the freed work item
How to detect it
Examine kernel logs for oops or use-after-free reports referencing xilinx-xadc or zynq_unmask_work during module unload; correlate with device removal events in dmesg.
What your security team should do
- Track kernel updates for the xilinx-xadc fix given the five-day disclosure window
- Limit device unbind operations on production systems until patched
- Review static-analysis results on similar drivers for comparable ordering issues
The record
In the Linux kernel, the following vulnerability has been resolved: iio: adc: xilinx-xadc: free IRQ before cancelling the unmask worker on unbind The ZYNQ XADC alarm IRQ handler queues zynq_unmask_work via schedule_delayed_work(); that work is cleared by a devm callback. Register the devm callback before devm_request_irq() so the devres LIFO teardown frees the IRQ first, ensuring the handler can no longer queue work by the time the workqueue is cleared. Otherwise the handler could re-arm the work and run it after the xadc structure has been freed. This issue was found by an in-house static analysis tool.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|