CVE-2026-53104: MT76 Linux WiFi Driver Memory Leak During Unload
A memory leak exists in the Linux kernel's MT76 WiFi driver that occurs during device destruction or module unload. The issue affects how receive (RX) queues manage associated memory pools—specifically, page pools are not properly cleaned up even when queues lack NAPI association, such as WED RRO (Ring Resource Optimize) queues when WED (Wireless Ethernet Dispatch) is enabled. This causes memory to remain allocated and inaccessible after the driver unloads, degrading system resource availability over time or after repeated driver restarts.
Source data · NVD / CISA · public domain
- CVSS
- 3.1 · 5.5 MEDIUM · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H
- Weaknesses (CWE)
- CWE-401
- Affected products
- 1 configuration(s)
- Published / Modified
- 2026-06-24 / 2026-07-23
NVD description (verbatim)
In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: Fix memory leak destroying device All MT76 rx queues have an associated page_pool even if the queue is not associated to a NAPI (e.g. WED RRO queues with WED enabled). Destroy the page_pool running mt76_dma_cleanup routine during module unload. Moreover returns pages to the page pool if WED is not enabled for WED RRO queues.
3 reference(s) · View on NVD →
SEC.co analysis · AI-assisted, reviewed against source
Technical summary
The MT76 driver allocates page_pool structures for all RX queues regardless of whether they are NAPI-bound. During module unload, the mt76_dma_cleanup routine does not properly destroy these page pools in all cases, leading to CWE-401 (Missing Release of Memory after Effective Lifetime). The vulnerability is particularly acute for WED RRO queues when WED offload is enabled, as the memory management pathway differs from standard NAPI-associated queues. Additionally, when WED is disabled for RRO queues, pages are not returned to the page pool before cleanup, compounding resource leakage.
Business impact
Memory leaks in kernel drivers can accumulate over time, especially in production environments where modules are frequently reloaded (e.g., during driver updates, hardware reconfiguration, or troubleshooting). On systems with constrained memory or running intensive WiFi workloads, repeated instances of this leak may cause gradual performance degradation, increased swap pressure, or eventual out-of-memory conditions. Systems reliant on stable WiFi connectivity—such as IoT gateways, access points, or embedded Linux devices—face reliability risks if memory exhaustion forces unplanned reboots.
Affected systems
Linux systems with MT76-based WiFi hardware and WED (Wireless Ethernet Dispatch) support enabled are most directly affected. This includes certain MediaTek-based WiFi cards and SoCs commonly found in routers, mesh networks, and enterprise access points. The vulnerability manifests during driver lifecycle events: module unload, device removal, or driver restart. Systems running continuously without module reload may experience latent impact only when administrative actions trigger cleanup paths.
Exploitability
This is not a remote exploitable vulnerability. Local privilege escalation is not required—any process capable of unloading or reloading the WiFi driver module can trigger the leak. However, exploitation does not yield immediate code execution or privilege escalation; instead, it is a denial-of-service vector via resource exhaustion. Repeated intentional module reloads by a privileged attacker or through buggy user-space tools could accelerate memory depletion. The CVSS 5.5 MEDIUM score reflects local access requirement and availability impact only.
Remediation
Apply the kernel patch that properly destroys page_pool structures during mt76_dma_cleanup for all RX queue types, and ensures pages are returned to the pool for WED RRO queues when WED is not active. Verify the fix against the Linux kernel repository's MT76 subsystem commits (typically in drivers/net/wireless/mediatek/mt76/). End users should update the kernel and any out-of-tree MT76 driver modules to patched versions.
Patch guidance
Check the Linux kernel's main branch and stable branches for commits addressing MT76 page_pool cleanup. The fix should be present in kernel versions released after the CVE publication date (June 2026). Consult the MediaTek MT76 project page and your Linux distribution's security advisories for backported patches to currently-supported kernel versions. If using out-of-tree MT76 drivers (common in embedded deployments), ensure that source is rebased against a patched upstream version.
Detection guidance
Monitor kernel memory metrics (available/free memory, slab usage) on systems with MT76 hardware, particularly after frequent WiFi driver module reload cycles. Use tools like 'free', 'vmstat', or 'slabtop' to detect gradual memory pressure. Enable kernel memory leak detectors (KMEMLEAK) in test/pre-production environments to catch this and similar leaks before they impact production. Review system logs for repeated module load/unload events that may trigger the leak pathway.
Why prioritize this
Prioritize patching for production WiFi infrastructure (routers, APs, gateways) and IoT deployments where memory is constrained and driver reloads may occur during maintenance windows. The fix is straightforward and low-risk. Systems on continuous uptime without administrative driver reloads face lower urgency, but should still be patched during routine update cycles to avoid latent issues and simplify troubleshooting.
Risk score, explained
CVSS 5.5 MEDIUM reflects: (1) Local attack vector only—no remote exploitation; (2) Low privileges required for exploiting via module reload; (3) High availability impact (resource exhaustion can degrade or crash services); (4) No confidentiality or integrity impact. The score appropriately captures a kernel resource leak as a medium-severity local DoS, not critical, but requiring prompt remediation in production environments.
Frequently asked questions
Does this vulnerability allow remote code execution or privilege escalation?
No. This is a local memory leak that causes denial-of-service via resource exhaustion. Remote attackers cannot trigger it directly, and it does not grant elevated privileges. Local users or administrators can trigger it by reloading the driver module.
Do I need to reboot my system to apply the patch?
Yes. The fix is in the kernel, so a reboot is required after updating the kernel package. However, this is a minor code path change with low risk of regression.
Does WED (Wireless Ethernet Dispatch) enabled or disabled affect my risk?
Both configurations are affected, but in different ways. WED-enabled systems leak page pools for RRO queues; WED-disabled systems fail to return pages. In either case, the leak occurs during module cleanup, making driver reload cycles the trigger event.
Are closed-source or binary WiFi drivers affected?
This CVE is specific to the open-source MT76 Linux kernel driver. Proprietary drivers from other vendors may have similar issues but would be tracked under separate CVEs. Check vendor security advisories if you use binary WiFi modules.
This analysis is provided for informational purposes and is based on the CVE record and associated vulnerability description. Patch availability, version numbers, and affected hardware configurations should be verified against official Linux kernel repositories, distribution advisories, and MediaTek documentation. No guarantee is made regarding completeness or timeliness of security updates across all Linux distributions or embedded deployments. Organizations should conduct internal testing of patches before production deployment. Source: NVD (public-domain), retrieved 2026-08-01. Analysis generated by SEC.co (claude-haiku-4-5).
Related vulnerabilities
- CVE-2026-46109MEDIUMLinux Kernel USB ULPI Memory Leak – CVSS 5.5 Medium
- CVE-2026-46141MEDIUMPowerPC XIVE Memory Leak in MSI-X Interrupt Allocation
- CVE-2026-46143MEDIUMLinux QCOM Audio Driver Memory Leak – Availability Risk
- CVE-2026-46147MEDIUMLinux ARM64 KVM vCPU Initialization Pin Leak and Race Condition
- CVE-2026-46151MEDIUMLinux Kernel USB Printer Driver Heap Memory Leak
- CVE-2026-46171MEDIUMLinux RISC-V KVM Vector Context Memory Leak
- CVE-2026-46182MEDIUMLinux Kernel PAPR Hypervisor Pipe Information Disclosure Vulnerability
- CVE-2026-46207MEDIUMLinux vsock/virtio Incomplete Payload Disclosure in Network Monitoring