CVE-2026-53229: Linux Kernel mlx5e XSK DMA and Frame Leak DoS
A memory leak vulnerability exists in the Linux kernel's mlx5e network driver, specifically in the XSK (AF_XDP zero-copy socket) transmission path. When the driver attempts to transmit an XDP frame but fails because its transmit queue is full, it neglects to release DMA mappings and free the frame buffer. Over time, this causes accumulated DMA memory leaks that are particularly visible when the driver is unloaded. The vulnerability is triggered during normal XDP_TX operations on systems using Mellanox network adapters with AF_XDP sockets.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 7.5 HIGH · CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-401
- Affected products
- 8 configuration(s)
- Published / Modified
- 2026-06-25 / 2026-07-02
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: net/mlx5e: xsk: Fix DMA and xdp_frame leak on XDP_TX xmit failure In the XSK branch of mlx5e_xmit_xdp_buff(), when sq->xmit_xdp_frame() returns false (e.g. XDPSQ is full), the function returns without unmapping the DMA address or freeing the xdp_frame allocated by xdp_convert_zc_to_xdp_frame(). The xdpi_fifo push only happens on success, so the completion path cannot recover these entries. With CONFIG_DMA_API_DEBUG=y, the leak surfaces on driver unbind: DMA-API: pci 0000:08:00.0: device driver has pending DMA allocations while released from device [count=1116] One of leaked entries details: [device address=0x000000010ffd7028] [size=1534 bytes] [mapped with DMA_TO_DEVICE] [mapped as phy] WARNING: kernel/dma/debug.c:881 at dma_debug_device_change+0x127/0x180 ... DMA-API: Mapped at: debug_dma_map_phys+0x4b/0xd0 dma_map_phys+0xfd/0x2d0 mlx5e_xdp_handle+0x5ae/0xac0 [mlx5_core] mlx5e_xsk_skb_from_cqe_mpwrq_linear+0xc4/0x170 [mlx5_core] mlx5e_handle_rx_cqe_mpwrq+0xc1/0x290 [mlx5_core] Add the missing unmap + xdp_return_frame, matching the cleanup already done in mlx5e_xdp_xmit(). has_frags is rejected earlier in this branch, so no per-frag unmap is needed.
4 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The vulnerability resides in mlx5e_xmit_xdp_buff() within the XSK branch of the mlx5e driver. When xdp_convert_zc_to_xdp_frame() allocates an xdp_frame and dma_map_phys() maps its DMA address, but sq->xmit_xdp_frame() subsequently returns false (e.g., transmit queue saturation), the function exits without performing cleanup. The xdpi_fifo push—which would queue entries for the completion handler to process—only occurs on successful transmission, leaving leaked DMA mappings and frame allocations orphaned. This is a resource exhaustion vulnerability classified under CWE-401 (Missing Release of Memory after Effective Lifetime). The fix adds the missing dma_unmap_phys() and xdp_return_frame() calls to mirror the cleanup logic already present in mlx5e_xdp_xmit().
Business impact
This vulnerability causes gradual resource exhaustion on systems running Mellanox network adapters under sustained XDP_TX workloads. Each failed transmission accumulates a DMA leak; with heavy packet processing, leak counts can reach thousands. The result is memory pressure, potential out-of-memory conditions, and driver instability. In production environments relying on high-performance AF_XDP packet processing (common in NFV, edge computing, and load-balancing deployments), this degradation can trigger service interruptions or force unplanned driver reloads, impacting network availability.
Affected systems
The vulnerability affects the Linux kernel across multiple stable and development versions. It impacts any system running the mlx5e driver (Mellanox ConnectX-3/4/5/6 series adapters) with AF_XDP socket support enabled and active XDP_TX operations. Systems explicitly monitoring DMA allocations (CONFIG_DMA_API_DEBUG=y) will surface the leak immediately; without this debug flag, the leak remains silent until resource exhaustion occurs.
Exploitability
No known public exploits exist for this vulnerability (KEV status: not added). Exploitation is not straightforward in the traditional sense—there is no remote code execution or privilege escalation vector. However, an unprivileged user with XDP socket creation privileges can trigger sustained leaked allocations by programming XDP_TX operations that intentionally cause queue saturation. This could be weaponized for denial-of-service in multi-tenant environments. The vulnerability requires active malicious or misconfigured workload interaction to manifest; it is not triggered by passive traffic.
Remediation
Apply the kernel patch that adds dma_unmap_phys() and xdp_return_frame() calls to the error path in mlx5e_xmit_xdp_buff(). This ensures DMA mappings are released and frame buffers are returned to the pool when transmission fails. Verify the patch against the official Linux kernel repository and your vendor's security advisories for the specific kernel version in use. Patched kernels will resolve the resource leak immediately; no configuration changes are required.
Patch guidance
Consult your Linux distribution's kernel security advisories for patched versions of your active kernel series. For Red Hat Enterprise Linux, Ubuntu, Debian, and other major distributions, check their respective kernel update packages released after CVE-2026-53229 disclosure. The fix is minimal and stable; kernel module recompilation may be necessary if you maintain out-of-tree driver builds. After patching, validate AF_XDP functionality with existing workloads and monitor DMA allocation warnings (if CONFIG_DMA_API_DEBUG is enabled) to confirm resolution.
Detection guidance
Enable CONFIG_DMA_API_DEBUG in your kernel build or runtime configuration (if supported) to surface DMA leaks on driver events. Monitor for DMA-API warnings in kernel logs, particularly on driver unbind or system shutdown. In production, track memory pressure and query /proc/meminfo and DMA pool statistics during sustained XDP workloads. Correlate memory growth with XDP_TX packet drops or queue full conditions to identify the vulnerability in action. Packet capture and analysis of XDP program behavior (via bpftrace or perf) can reveal patterns of transmission failures that precede leaks.
Why prioritize this
This vulnerability scores HIGH (CVSS 7.5) due to its availability impact and ease of triggering via network input under AF_XDP conditions. While not remotely exploitable in the traditional sense, the denial-of-service impact is material in production networks. Patches are low-risk and should be applied as part of routine kernel security updates. Prioritize systems running Mellanox adapters with active XDP workloads in latency-sensitive or multi-tenant environments.
Risk score, explained
CVSS 7.5 reflects the High severity: Attack Vector Network (XDP_TX can be triggered by ingress packets), Attack Complexity Low (no special conditions), Privileges Not Required (unprivileged users can create XDP sockets in many configurations), User Interaction None, Scope Unchanged, and Availability High impact (memory exhaustion and service disruption). Confidentiality and Integrity are unaffected. The score does not account for the fact that XDP socket creation may require elevated privileges in some deployments, which would lower practical exploitability; however, the CVSS reflects the vulnerability's inherent reachability and effect.
Frequently asked questions
Does this vulnerability allow remote code execution?
No. This is a resource leak that causes denial-of-service through memory exhaustion. It does not permit arbitrary code execution or privilege escalation. An attacker would need to trigger XDP_TX operations (via AF_XDP sockets) that fail under queue saturation, accumulating leaks over time.
Which Mellanox adapter generations are affected?
The mlx5e driver supports ConnectX-3, ConnectX-4, ConnectX-5, ConnectX-6, and later generations. All systems running this driver with AF_XDP and XDP_TX enabled are potentially affected. Verify your specific adapter and kernel version against the patch release notes.
Can I work around this vulnerability without patching?
Partial mitigations include disabling AF_XDP or XDP_TX workloads until patched, reducing XDP program complexity to minimize queue saturation, or running kernel memory monitoring (CONFIG_DMA_API_DEBUG) to detect and alert on leaks. However, patching is the only complete fix.
Will this cause immediate system crashes?
Not necessarily. The leak accumulates gradually. Without debug flags, it may go unnoticed until memory pressure becomes severe. Leaks are most visible on driver unbind or system shutdown. In sustained high-throughput XDP workloads, memory exhaustion could eventually trigger OOM events.
This analysis is based on vulnerability disclosure data available as of July 2026 and vendor advisories. CVSS scores and impact assessments reflect known attack vectors; real-world risk may vary based on deployment architecture and kernel configurations. Always verify patch availability and compatibility with your specific kernel version and distribution before applying updates. This document does not constitute legal or contractual guidance; consult your organization's security and compliance team for remediation timelines. Source: NVD (public-domain), retrieved 2026-08-03. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-46178HIGHLinux Kernel RDMA/mlx4 Resource Leak – HIGH Severity
- CVE-2026-46201HIGHLinux Xe Graphics Driver DMA-Buf Attachment Leak
- CVE-2026-46303HIGHLinux isofs Rock Ridge Information Disclosure Vulnerability
- CVE-2026-46309HIGHLinux xe GPU Driver Memory Disclosure via Incoherent Cache Access
- CVE-2026-52923HIGHLinux Kernel IPC Checkpoint/Restore Use-After-Free Vulnerability
- CVE-2026-52974HIGHLinux Kernel TLS Hardware Offload Memory Leak
- CVE-2026-52981HIGHLinux Kernel neigh_xmit SKB Memory Leak Denial of Service
- CVE-2026-53087HIGHLinux bcmgenet Driver Memory Leak Causes Network DoS