CVE-2026-98878
NoneCVSS
—
EPSS
0.2%
Published
Oct 23, 2026
CISA due date
—
Cloudanix analysis
A hardware interrupt handling mistake in the Linux kernel can let one slow task temporarily freeze the delivery of other interrupts, which may make parts of the system unresponsive until a software update is installed.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The flaw delays the GIC CDEOI priority drop until irq_eoi() completes, so an acknowledged interrupt that triggers a long-running handler (such as software-based VM interrupt injection) keeps the interrupt priority register elevated and prevents any equal- or lower-priority interrupt from being signaled until deactivation occurs.
Why it matters to the business
Systems using GICv5 hardware, especially hypervisors and virtualized workloads, can experience extended periods where new interrupts are ignored, producing apparent system hangs or degraded responsiveness; the issue is only two days old with very low exploit probability so immediate broad outages are unlikely.
How an attack unfolds
An attacker with the ability to generate or control interrupts that invoke lengthy post-ack processing (for example, repeatedly injecting physical interrupts into a guest VM) can hold the priority level high, starving other interrupt sources and achieving a localized denial of service without needing code execution or special privileges beyond normal interrupt generation.
How to fix it
Update to a Linux kernel containing the fix that performs the CDEOI priority drop immediately after interrupt acknowledgment in the GICv5 handler while leaving deactivation in irq_eoi(); rebuild and deploy the kernel on all GICv5 systems, then verify the driver change.
How to confirm the fix worked
Inspect the gic-v5.c source for the relocated CDEOI write immediately after the acknowledgment path and confirm that CDDI deactivation still occurs only inside irq_eoi(); boot the updated kernel and exercise interrupt-heavy workloads to ensure no priority-related stalls occur.
Typical attack path
- Generate or steer an interrupt to a CPU using GICv5
- Acknowledge the interrupt in the main handler
- Enter a long-running software path (VM injection, heavy work) before EOI
- Observe subsequent equal- or lower-priority interrupts blocked until the slow path finishes
How to detect it
Examine dmesg and kernel logs for GICv5 driver messages around interrupt acknowledgment or EOI timing; monitor hypervisor or guest logs for unusually long interrupt injection latencies; no public exploitation artifacts are known at this time.
What your security team should do
- Track upstream Linux kernel commits for the gic-v5 priority-drop change and schedule testing within the next sprint
- Identify and inventory any GICv5-based platforms or hypervisors in the environment
- Add kernel interrupt-latency monitoring to detect anomalous blocking until the patch is applied
The record
In the Linux kernel, the following vulnerability has been resolved: irqchip/gic-v5: Immediately exec priority drop following activate With GICv5 an interrupt of equal or lower priority cannot be signalled until there has been a priority drop. This is done via the GIC CDEOI system instruction. Once this has been executed, the hardware is able to signal the next interrupt if there is one. As all interrupts are programmed to have the same priority, no new interrupts can be signalled until the priority drop has happened. This can cause issues when, for example, an interrupt remains active while a long running process takes place, such as when injecting a physical interrupt into a guest VM in software. The GICv5 driver has so far done the priority drop as part of irq_eoi(), i.e., at the same time as deactivating the interrupt. This means that any long running process (or VM) could block incoming interrupts, effectively causing a denial of service for all other interrupts. Rather than doing the EOI as part of irq_eoi() (which the name would suggest would be a good place for it), move it to happen immediately after acknowledging an interrupt in the main GICv5 interrupt handler. The deactivation of interrupts (GIC CDDI) remains implemented as part of irq_eoi(), which means that the same interrupt cannot be signalled a second time until deactivated by software.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|