HIGH 7.8

CVE-2026-53097: Linux MT7996 Wi-Fi Driver Use-After-Free (CVSS 7.8)

A use-after-free vulnerability exists in the Linux kernel's MT7996 Wi-Fi driver code. When the wireless adapter is being removed from the system, a background worker thread may still be trying to access data structures that have already been freed, causing a crash or potential code execution. The issue stems from improper synchronization between the device removal process and a pending diagnostic dump operation.

Source data · NVD / CISA · public domain

CVSS
3.1 · 7.8 HIGH · CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Weaknesses (CWE)
CWE-416
Affected products
1 configuration(s)
Published / Modified
2026-06-24 / 2026-07-21

NVD description (verbatim)

In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7996: fix use-after-free bugs in mt7996_mac_dump_work() When the mt7996 pci chip is detaching, the mt7996_crash_data is released in mt7996_coredump_unregister(). However, the work item dump_work may still be running or pending, leading to UAF bugs when the already freed crash_data is dereferenced again in mt7996_mac_dump_work(). The race condition can occur as follows: CPU 0 (removal path) | CPU 1 (workqueue) mt7996_pci_remove() | mt7996_sys_recovery_set() mt7996_unregister_device() | mt7996_reset() mt7996_coredump_unregister() | queue_work() vfree(dev->coredump.crash_data) | mt7996_mac_dump_work() | crash_data-> // UAF Fix this by ensuring dump_work is properly canceled before the crash_data is deallocated. Add cancel_work_sync() in mt7996_unregister_device() to synchronize with any pending or executing dump work.

4 reference(s) · View on NVD →

SEC.co analysis · AI-assisted, reviewed against source

Technical summary

CVE-2026-53097 is a use-after-free (CWE-416) flaw in the mt76 driver's MT7996 chipset handler. During PCI device removal, mt7996_coredump_unregister() deallocates dev->coredump.crash_data via vfree(). Concurrently, the dump_work work-queue item may still be queued or executing, causing mt7996_mac_dump_work() to dereference the freed memory. The race condition arises because no cancel_work_sync() call ensures dump_work completion before crash_data deallocation. The fix adds explicit work cancellation in mt7996_unregister_device() to serialize the cleanup sequence.

Business impact

Systems running affected Linux kernels with MT7996-based Wi-Fi adapters face instability during driver unload or device hotplug scenarios. Exploitation could trigger kernel panics, denial of service, or—depending on heap layout and attacker position—arbitrary code execution at kernel privilege level. Organizations heavily reliant on wireless infrastructure or edge devices with these adapters should prioritize remediation to prevent operational disruption.

Affected systems

The vulnerability affects Linux kernel implementations that include the mt76 driver with MT7996 chipset support. This includes recent stable and LTS kernel versions containing the affected code path. Affected systems typically include laptops, edge computing devices, or wireless access points using Mediatek MT7996 radio modules. Desktop and server systems without MT7996 adapters are not impacted.

Exploitability

Exploitability requires local access and the ability to trigger device removal (unbind/hotplug) while a diagnostic dump is pending. The attack surface is limited to users with sufficient privileges to manipulate PCI devices or force driver unload. Public exploit code is not known; however, the vulnerability is trivial to trigger in lab conditions and does not require interaction beyond standard device management commands. The CVSS score of 7.8 (High) reflects local privilege requirements but high impact on confidentiality, integrity, and availability.

Remediation

Apply kernel patches that add cancel_work_sync() in mt7996_unregister_device() before crash_data deallocation. This ensures the dump_work workqueue item is fully canceled and synchronized before memory is freed. Verify the patch against the official Linux kernel repository or your distribution's security advisory. Users unable to patch immediately should avoid hotplugging or unloading the MT7996 driver during system operation.

Patch guidance

Monitor your Linux distribution's security advisories for kernel updates addressing this vulnerability. When available, update to patched kernel versions through your package manager (apt, yum, dnf, etc.). Verify patches by checking commit logs in the linux-kernel repository or your vendor's security bulletins. Test in a non-production environment before deploying to production systems. Reboot is required after kernel patching.

Detection guidance

Monitor system logs for kernel oops, panic messages, or use-after-free warnings involving mt7996_mac_dump_work or coredump-related functions. Enable kernel debugging (CONFIG_DEBUG_KMEMLEAK, CONFIG_KASAN) in development/test environments to catch heap corruption earlier. Track PCI device unbind/hotplug events correlated with diagnostic dump operations. System administrators should review kernel bug reports and dmesg during driver reload cycles for warning signs.

Why prioritize this

Although CVE-2026-53097 requires local access and specific hardware (MT7996 adapters), the high CVSS score (7.8), ease of triggering, and kernel-level impact warrant prompt attention. Organizations using affected wireless hardware should patch within normal security update cycles. The lack of KEV designation suggests limited active weaponization, but the triviality of reproduction in controlled environments justifies prioritization over lower-impact flaws.

Risk score, explained

CVSS 3.1 score of 7.8 (High) reflects: attack vector Local (AV:L), attack complexity Low (AC:L), privilege requirement Low (PR:L), no user interaction (UI:N), unchanged scope (S:U), and high impact across confidentiality, integrity, and availability (C:H/I:H/A:H). The score appropriately captures kernel-level memory corruption leading to potential code execution, moderated only by the need for local access and low-level privilege. No CVSS modifiers or environmental factors alter the published score.

Frequently asked questions

Can this vulnerability be exploited remotely?

No. CVE-2026-53097 requires local system access and the ability to trigger PCI device removal or driver unload. Remote exploitation is not feasible.

Does this affect all MT76 driver chips or only MT7996?

The vulnerability is specific to the MT7996 chipset implementation. Other MT76 chips are not affected by this particular race condition, though they may have unrelated issues.

What should we do if we cannot patch immediately?

Minimize hotplug and driver reload operations on systems with MT7996 adapters. Avoid runtime driver unbind cycles in production. Plan patching within your normal security update windows; this is not an emergency patch situation unless you rely heavily on MT7996 device hot-swap.

How can we verify if our kernel includes the vulnerable code?

Check your kernel version against your distribution's advisory. Alternatively, inspect the kernel source tree for mt76/mt7996 driver code and verify whether mt7996_unregister_device() includes cancel_work_sync() calls. If unsure, consult your vendor's security bulletin.

This analysis is based on publicly available vulnerability data as of the publication date. CVSS scores and severity ratings are provided by upstream sources and may be subject to revision. No exploit code or detailed weaponization techniques are disclosed. Organizations should verify patch availability and compatibility with their specific kernel versions and distributions before deployment. SEC.co does not guarantee completeness or real-time accuracy of vulnerability information; always cross-reference with official vendor advisories and security databases. Source: NVD (public-domain), retrieved 2026-08-01. Analysis generated by SEC.co (claude-haiku-4-5).