Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-63821

CVE-2026-63821: Linux Kernel RTW88 Memory Leak Vulnerability

CVE-2026-63821 is a memory leak flaw in the Linux kernel RTW88 USB driver that occurs when USB write operations fail. The vulnerability can cause resource exhaustion during device disconnect scenarios. This article covers technical details, affected versions, impact, and mitigation strategies.

Published:

CVE-2026-63821 Overview

CVE-2026-63821 is a memory leak vulnerability in the Linux kernel's rtw88 USB Wi-Fi driver. The flaw resides in the rtw_usb_write_port() submission path, where callers ignore the return value of URB (USB Request Block) submissions. When submission fails due to device disconnect or ENOMEM conditions, the completion callback never runs, leaving socket buffers (skbs) and transaction control blocks (txcbs) unreleased. The issue affects rtw_usb_write_data() and rtw_usb_tx_agg_skb() in the Realtek 802.11ac USB driver.

Critical Impact

Repeated USB write failures during device disconnect or memory pressure conditions leak kernel memory and can lead to resource exhaustion over time.

Affected Products

  • Linux kernel branches shipping the rtw88 USB driver prior to the fix commits
  • Systems using Realtek 802.11ac USB Wi-Fi adapters supported by rtw88
  • Multiple stable kernel trees referenced by commits 200d58c, 2b2060c, 53fed40, 6b96494, and 8206d17

Discovery Timeline

  • 2026-07-19 - CVE-2026-63821 published to NVD
  • 2026-07-19 - Last updated in NVD database

Technical Details for CVE-2026-63821

Vulnerability Analysis

The rtw88 USB transmit path relies on the URB completion callback to release transmit resources. rtw_usb_write_data() allocates an skb and passes it to rtw_usb_write_port(), expecting the completion handler to free it. rtw_usb_tx_agg_skb() allocates a txcb and aggregates multiple skbs onto tx_ack_queue under the same assumption.

When usb_submit_urb() fails inside rtw_usb_write_port(), no completion callback is scheduled. Because the calling functions discard the error return, the allocated buffers remain referenced only by the failed submission path and are never freed. This produces a memory leak proportional to submission failure frequency.

Root Cause

The root cause is an unchecked return value combined with an ownership contract that assumed submission always succeeded. The completion callback held sole responsibility for freeing skb and txcb allocations, so any early failure in submission bypassed cleanup entirely. This pattern is a resource management defect rather than an attacker-controlled condition.

Attack Vector

The vulnerability triggers under legitimate operational conditions: USB Wi-Fi device disconnect or reconnect events, and kernel memory pressure returning ENOMEM from URB allocation. A local user with the ability to induce disconnect events or memory pressure could accelerate the leak, but no remote exploitation vector is documented. The impact is confined to kernel memory exhaustion and potential denial of service on long-running systems using affected adapters.

See the upstream patch commits for the exact code paths modified. The fix checks the return value of rtw_usb_write_port(), explicitly frees the skb in rtw_usb_write_data() on failure, and purges the tx_ack_queue while freeing the txcb in rtw_usb_tx_agg_skb().

Detection Methods for CVE-2026-63821

Indicators of Compromise

  • Steadily increasing SLAB/kmalloc usage attributable to skbuff_head_cache on systems with rtw88 USB adapters
  • Recurring USB disconnect or usb_submit_urb failure messages in dmesg correlated with kernel memory growth
  • Wi-Fi TX operations continuing to allocate buffers after repeated adapter reconnect cycles

Detection Strategies

  • Monitor /proc/slabinfo for growth in skbuff_head_cache and driver-specific caches on hosts using Realtek USB Wi-Fi
  • Compare running kernel version against the fix commits (200d58c851b8, 2b2060c2075a, 53fed4061a09, 6b964941bbfe, 8206d173d18e)
  • Correlate USB unbind or -ENOMEM events with MemAvailable decline over time

Monitoring Recommendations

  • Track kernel memory metrics with node_exporter or equivalent and alert on sustained slab growth without workload change
  • Log USB subsystem events via udev and journalctl -k to detect disconnect frequency on affected hosts
  • Baseline TX buffer allocation counters exposed by ethtool -S or debugfs for the rtw88 driver

How to Mitigate CVE-2026-63821

Immediate Actions Required

  • Update to a kernel release containing the fix commits referenced above for every affected stable branch
  • Inventory hosts using Realtek 802.11ac USB adapters bound to the rtw88_usb module
  • Restart long-running systems that have experienced repeated USB Wi-Fi disconnect events to reclaim leaked memory

Patch Information

The upstream fix is available in multiple stable kernel trees. Refer to Kernel Git Commit 200d58c, Kernel Git Commit 2b2060c, Kernel Git Commit 53fed40, Kernel Git Commit 6b96494, and Kernel Git Commit 8206d17. Apply the appropriate backport for your kernel branch and rebuild or install the distribution package that includes the fix.

Workarounds

  • Unload the rtw88_usb module (modprobe -r rtw88_usb) on hosts that do not require the affected adapter until patching is complete
  • Avoid workflows that repeatedly disconnect and reconnect Realtek USB Wi-Fi adapters on unpatched systems
  • Schedule periodic reboots on unpatched hosts operating under memory pressure to reclaim leaked kernel allocations
bash
# Verify the loaded driver and current kernel version, then unload if needed
uname -r
lsmod | grep rtw88_usb
sudo modprobe -r rtw88_usb

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.