CVE-2026-43448
Race Condition in Linux Kernel NVMe PCI Driver
Publication date: 2026-05-08
Last updated on: 2026-05-08
Assigner: kernel.org
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| linux | linux_kernel | 6.19.0 |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-UNKNOWN |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability is a race condition in the Linux kernel's NVMe PCI driver, specifically in the function nvme_poll_irqdisable().
The issue occurs when the PCI device (pdev) can be disabled between two points in the code, causing the msix_enabled flag to be set to 0. This leads to inconsistent IRQ (interrupt request) numbers being used between disable_irq() and enable_irq() calls.
Because of this mismatch, the kernel tries to enable an interrupt (INTx IRQ) that was never disabled, causing an IRQ warning and unbalanced enable calls.
The fix involves saving the IRQ number into a local variable and ensuring that disable_irq() and enable_irq() operate on the same IRQ number, maintaining balanced depth accounting even if IRQ vectors are freed concurrently.
How can this vulnerability impact me? :
This vulnerability can cause IRQ warnings and unbalanced enable calls in the Linux kernel, which may lead to instability or crashes in systems using the affected NVMe PCI driver.
Such instability could affect system reliability, potentially causing unexpected behavior or downtime in environments relying on NVMe storage devices.
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability manifests as an IRQ warning in the Linux kernel logs, specifically an "Unbalanced enable for IRQ" message indicating a race condition in IRQ handling.
To detect this issue on your system, you should monitor the kernel logs for warnings related to IRQ management, such as messages containing "Unbalanced enable for IRQ" or warnings from kernel/irq/manage.c.
You can use the following commands to check for such warnings:
- dmesg | grep -i 'Unbalanced enable for IRQ'
- journalctl -k | grep -i 'Unbalanced enable for IRQ'
- journalctl -k | grep -i irq
Additionally, monitoring system logs for kernel warnings or errors related to NVMe or PCI IRQ handling may help identify the presence of this vulnerability.
What immediate steps should I take to mitigate this vulnerability?
The vulnerability is fixed by ensuring that disable_irq() and enable_irq() operate on the same IRQ number, even if pci_free_irq_vectors() frees the IRQ concurrently.
Immediate mitigation steps include:
- Update your Linux kernel to a version that includes the fix for this race bug in nvme_poll_irqdisable().
- Avoid using affected kernel versions where this race condition exists.
- Monitor kernel logs for IRQ warnings to detect if the issue is occurring.
Since this is a kernel-level bug, applying the official patch or upgrading the kernel is the most effective mitigation.