CVE-2026-43466
High · 8.2CVSS
8.2
EPSS
0.6%
Published
May 8, 2026
CISA due date
—
Cloudanix analysis
Some Linux servers with specific high-speed network cards can become unstable or lose network connectivity when the network driver mishandles an error recovery condition.
- Exploitation
- Remote Unauthenticated
- Attacker needs
- None
- Complexity
- Moderate
- Impact
- Denial Of Service
- Component
- OS kernel
- Class
- Denial of service
- Remediation
- Patch
- Effort
- Low
- Patch risk
- Low
What it actually does
This flaw affects the Linux kernel mlx5e network driver used with NVIDIA/Mellanox mlx5 Ethernet devices. During recovery from a transmit error completion queue entry, the driver resets the DMA FIFO consumer counter but leaves the producer counter unchanged. That desynchronizes software bookkeeping for DMA mappings, causing the driver to unmap stale or incorrect DMA addresses after recovery. The likely effects are kernel warnings, IOMMU/DMA mapping errors, network device instability, packet transmission disruption, and potentially a kernel crash or denial of service. The issue is primarily an availability risk, with a limited integrity concern from incorrect DMA bookkeeping; no confidentiality impact is indicated by the available description.
Why it matters to the business
Systems using affected Linux kernels with mlx5/mlx5e network adapters may experience network outages, degraded throughput, kernel warnings, or crashes when transmit error recovery is triggered. This is most consequential for virtualization hosts, storage networks, Kubernetes nodes, high-performance computing clusters, and data-center servers that rely on Mellanox/NVIDIA ConnectX-class networking. Although the EPSS score is low and there is no known CISA KEV listing or ransomware association, the high availability impact and kernel-level failure mode make timely patching important for production hosts using mlx5 hardware.
How an attack unfolds
An attacker would need to cause or coincide with a transmit error condition on an affected mlx5e interface. Once the driver processes a TX error completion queue entry, the recovery path incorrectly resets only part of the DMA FIFO state. Subsequent transmitted packets cause the producer to write DMA entries at the previous producer position while the consumer reads from the beginning of the FIFO. The driver can then attempt to unmap stale DMA addresses, triggering IOMMU warnings and potentially destabilizing the network driver or kernel. Practical exploitation is hardware- and workload-dependent and may be difficult to reproduce reliably, but a remote attacker capable of stressing the affected network interface could attempt to induce conditions that lead to denial of service.
How to fix it
Apply a Linux kernel update that includes the upstream mlx5e fix for DMA FIFO handling during TX error CQE SQ recovery. The corrective change removes the erroneous reset of dma_fifo_cc in mlx5e_reset_txqsq_cc_pc() so DMA FIFO producer and consumer state remains consistent after recovery. Because no exact fixed package versions were provided, use the fixed kernel packages from the relevant Linux distribution, vendor advisory, or long-term stable kernel branch once available. Prioritize hosts with NVIDIA/Mellanox mlx5 Ethernet adapters, especially virtualization, storage, and high-throughput networking systems. If immediate patching is not possible, reduce exposure by limiting untrusted traffic to affected interfaces, moving critical workloads away from affected hosts, disabling or avoiding mlx5e-backed interfaces where operationally feasible, and monitoring for driver/IOMMU warnings that indicate the failure path has been reached.
How to confirm the fix worked
Confirm the running kernel has the vendor backport or upstream fix for the mlx5e DMA FIFO recovery issue. Validate by checking distribution security advisories, kernel changelogs, or source/package metadata for the mlx5e change that removes the dma_fifo_cc reset in mlx5e_reset_txqsq_cc_pc(). Inventory affected systems by identifying hosts with loaded mlx5_core/mlx5e modules or Mellanox/NVIDIA mlx5 PCI devices. After patching and rebooting into the fixed kernel, verify the active kernel version, confirm mlx5_core is loaded from the updated kernel tree, and review dmesg/journal logs under network stress for absence of iommu_dma_unmap_page warnings and mlx5e TX recovery errors.
Typical attack path
- Identify a reachable Linux system using an affected kernel and mlx5/mlx5e network hardware or virtual functions.
- Generate sustained or malformed network activity that stresses transmit queues on the affected interface.
- Trigger or wait for a TX error completion queue entry on the mlx5e transmit path.
- Cause the mlx5e recovery logic to desynchronize DMA FIFO producer and consumer counters.
- Continue traffic so the driver consumes stale DMA FIFO entries and attempts invalid DMA unmaps.
- Observe network disruption, driver instability, kernel warnings, or a host crash resulting in denial of service.
How to detect it
Review kernel logs, system journals, crash dumps, and monitoring telemetry for signs that the mlx5e TX error recovery path was reached and followed by DMA/IOMMU unmap warnings or network driver instability. Useful sources include dmesg, journalctl -k, /var/log/kern.log, /var/log/messages, netconsole output, kdump/vmcore analysis, hypervisor host logs, and infrastructure monitoring that records NIC resets, link flaps, kernel warnings, or unexpected reboots. Look for WARNING traces involving iommu_dma_unmap_page, dma_unmap_page_attrs, mlx5e_tx_wi_dma_unmap, mlx5e_poll_tx_cq, mlx5e_napi_poll, and mlx5_core. Also correlate with spikes in network traffic, transmit queue errors, interface resets, NAPI polling warnings, IOMMU faults, host crashes, or degraded application connectivity. There are no known public threat actors, KEV exploitation, or ransomware campaigns associated with this issue in the provided data, so detection should focus on kernel failure artifacts rather than attacker-specific infrastructure.
- WARNING: CPU:
- iommu_dma_unmap_page
- dma_unmap_page_attrs
- mlx5e_tx_wi_dma_unmap
- mlx5e_poll_tx_cq
- mlx5e_napi_poll
- mlx5_core
- mlx5e_reset_txqsq_cc_pc
- dma_fifo_cc
- dma_fifo_pc
- TX error CQE
- error CQE
- net/mlx5e
- Modules linked in: mlx5
- mlx5_vdpa
- mlx5_ib
- mlx5_vfio_pci
- mlx5_fwctl
- RIP: 0010:iommu_dma_unmap_page
- Call Trace:
- __napi_poll
- net_rx_action
- handle_softirqs
What your security team should do
- Inventory Linux systems using mlx5/mlx5e network hardware, including bare-metal servers, hypervisors, Kubernetes nodes, and systems using SR-IOV or VFIO with mlx5 devices.
- Prioritize patching exposed or high-availability systems that rely on mlx5e interfaces for production, storage, cluster, or virtualization traffic.
- Track Linux distribution and hardware vendor advisories for fixed kernel package versions because exact fixed versions were not provided in the input.
- Reboot into the corrected kernel after patching; live patching may not fully replace affected driver state depending on vendor implementation.
- Monitor kernel logs for DMA/IOMMU warnings and mlx5e transmit queue recovery messages until all affected systems are remediated.
- If patching is delayed, reduce untrusted traffic paths to affected interfaces and consider workload migration from vulnerable hosts with critical availability requirements.
- Create SIEM alerts for the specific kernel warning and call-trace indicators associated with this issue.
The record
In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: Fix DMA FIFO desync on error CQE SQ recovery In case of a TX error CQE, a recovery flow is triggered, mlx5e_reset_txqsq_cc_pc() resets dma_fifo_cc to 0 but not dma_fifo_pc, desyncing the DMA FIFO producer and consumer. After recovery, the producer pushes new DMA entries at the old dma_fifo_pc, while the consumer reads from position 0. This causes us to unmap stale DMA addresses from before the recovery. The DMA FIFO is a purely software construct with no HW counterpart. At the point of reset, all WQEs have been flushed so dma_fifo_cc is already equal to dma_fifo_pc. There is no need to reset either counter, similar to how skb_fifo pc/cc are untouched. Remove the 'dma_fifo_cc = 0' reset. This fixes the following WARNING: WARNING: CPU: 0 PID: 0 at drivers/iommu/dma-iommu.c:1240 iommu_dma_unmap_page+0x79/0x90 Modules linked in: mlx5_vdpa vringh vdpa bonding mlx5_ib mlx5_vfio_pci ipip mlx5_fwctl tunnel4 mlx5_core ib_ipoib geneve ip6_gre ip_gre gre nf_tables ip6_tunnel rdma_ucm ib_uverbs ib_umad vfio_pci vfio_pci_core act_mirred act_skbedit act_vlan vhost_net vhost tap ip6table_mangle ip6table_nat ip6table_filter ip6_tables iptable_mangle cls_matchall nfnetlink_cttimeout act_gact cls_flower sch_ingress vhost_iotlb iptable_raw tunnel6 vfio_iommu_type1 vfio openvswitch nsh rpcsec_gss_krb5 auth_rpcgss oid_registry xt_conntrack xt_MASQUERADE nf_conntrack_netlink nfnetlink iptable_nat nf_nat xt_addrtype br_netfilter overlay zram zsmalloc rpcrdma ib_iser libiscsi scsi_transport_iscsi rdma_cm iw_cm ib_cm ib_core fuse [last unloaded: nf_tables] CPU: 0 UID: 0 PID: 0 Comm: swapper/0 Not tainted 6.13.0-rc5_for_upstream_min_debug_2024_12_30_21_33 #1 Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS rel-1.13.0-0-gf21b5a4aeb02-prebuilt.qemu.org 04/01/2014 RIP: 0010:iommu_dma_unmap_page+0x79/0x90 Code: 2b 4d 3b 21 72 26 4d 3b 61 08 73 20 49 89 d8 44 89 f9 5b 4c 89 f2 4c 89 e6 48 89 ef 5d 41 5c 41 5d 41 5e 41 5f e9 c7 ae 9e ff <0f> 0b 5b 5d 41 5c 41 5d 41 5e 41 5f c3 66 2e 0f 1f 84 00 00 00 00 Call Trace: <IRQ> ? __warn+0x7d/0x110 ? iommu_dma_unmap_page+0x79/0x90 ? report_bug+0x16d/0x180 ? handle_bug+0x4f/0x90 ? exc_invalid_op+0x14/0x70 ? asm_exc_invalid_op+0x16/0x20 ? iommu_dma_unmap_page+0x79/0x90 ? iommu_dma_unmap_page+0x2e/0x90 dma_unmap_page_attrs+0x10d/0x1b0 mlx5e_tx_wi_dma_unmap+0xbe/0x120 [mlx5_core] mlx5e_poll_tx_cq+0x16d/0x690 [mlx5_core] mlx5e_napi_poll+0x8b/0xac0 [mlx5_core] __napi_poll+0x24/0x190 net_rx_action+0x32a/0x3b0 ? mlx5_eq_comp_int+0x7e/0x270 [mlx5_core] ? notifier_call_chain+0x35/0xa0 handle_softirqs+0xc9/0x270 irq_exit_rcu+0x71/0xd0 common_interrupt+0x7f/0xa0 </IRQ> <TASK> asm_common_interrupt+0x22/0x40
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|