MEDIUM 5.5

CVE-2026-53103: Linux MT7925 WiFi Driver Deadlock Vulnerability – Remediation Guide

A flaw in the Linux kernel's WiFi driver for MediaTek MT7925 devices can cause the system to become unresponsive when removing a wireless station. The issue stems from a deadlock condition where two parts of the driver code try to acquire the same lock, with one waiting for the other to release it—but that other code is blocked waiting for the first to finish. This creates a circular dependency that halts progress. The problem surfaces specifically during station removal operations when the driver attempts to abort pending radio operations.

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-667
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: mt7925: fix potential deadlock in mt7925_roc_abort_sync roc_abort_sync() can deadlock with roc_work(). roc_work() holds dev->mt76.mutex, while cancel_work_sync() waits for roc_work() to finish. If the caller already owns the same mutex, both sides block and no progress is possible. This deadlock can occur during station removal when mt76_sta_state() -> mt76_sta_remove() -> mt7925_mac_sta_remove_link() -> mt7925_mac_link_sta_remove() -> mt7925_roc_abort_sync() invokes cancel_work_sync() while roc_work() is still running and holding dev->mt76.mutex. This avoids the mutex deadlock and preserves exactly-once work ownership.

3 reference(s) · View on NVD →

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

Technical summary

CVE-2026-53103 addresses a potential deadlock in mt7925_roc_abort_sync() within the Linux kernel's mt76 WiFi driver. The vulnerability occurs when roc_abort_sync() invokes cancel_work_sync() to wait for roc_work() to complete, but roc_work() is concurrently holding dev->mt76.mutex. If the calling context (such as mt76_sta_remove() during station removal) already owns this same mutex, a classic lock-ordering deadlock ensues: the work function cannot release the mutex because cancel_work_sync() blocks the thread that holds it. The issue is classified as a synchronization/lock management flaw (CWE-667) and affects the MediaTek MT7925 wireless adapter support in the Linux kernel.

Business impact

For organizations deploying WiFi-equipped systems with MT7925 adapters, this vulnerability can cause unexpected system hangs or unresponsiveness when wireless stations disconnect or are removed—particularly in environments with frequent station churn such as public WiFi hotspots or mobile deployments. While the deadlock is localized to the WiFi driver and does not persist after reboot, affected systems may require manual intervention to recover, disrupting availability. For enterprise wireless infrastructure or edge computing deployments relying on Linux-based WiFi access points, this could impact service continuity.

Affected systems

The vulnerability affects systems running the Linux kernel with the MT7925 wireless driver compiled and in use. This includes any Linux distribution or embedded system that includes WiFi support for MediaTek MT7925 chipset-based devices. Typical affected hardware includes laptops, tablets, and embedded Linux systems with MT7925 WiFi adapters. Desktop systems and servers without MT7925 chipsets are not affected.

Exploitability

This vulnerability requires local access and the ability to trigger station removal operations on a connected WiFi adapter—for example, by disconnecting a client or removing a peer device entry. An unprivileged local user can trigger the deadlock by manipulating WiFi connections through standard user-space wireless tools. Once triggered, the deadlock freezes the WiFi driver context, though it does not provide privilege escalation or data exfiltration. The attack surface is limited to systems where local users can interact with WiFi connectivity.

Remediation

The fix involves refactoring mt7925_roc_abort_sync() to avoid calling cancel_work_sync() while holding dev->mt76.mutex. The resolved implementation preserves the guarantee of work-function ownership without introducing the lock-ordering deadlock. Users should apply a kernel update that includes the fix once available from their distribution maintainer or verify the patch against the official Linux kernel repositories. Systems running unpatched versions should limit local user access to wireless management tools if feasible.

Patch guidance

Monitor your Linux kernel version and distribution's security updates. When a patched kernel is available, apply it through your standard update mechanism (e.g., apt, yum, or manual compilation). For distributions using long-term support kernels, check the vendor's advisory for backported fixes. Verify that your specific kernel version includes the mt7925_roc_abort_sync() fix by cross-referencing against the upstream Linux kernel commit history or your distribution's changelogs. If you maintain custom kernel builds, apply the upstream patch and recompile.

Detection guidance

Monitor system logs for signs of WiFi driver hangs or unresponsiveness coinciding with station removal events. On affected systems, you may observe kernel messages indicating work queue stalls or mutex contention warnings. Use tools such as `dmesg` or systemd journal to examine driver behavior, and correlate timing with wireless client disconnection events. Stress testing WiFi station addition and removal under load can help identify systems susceptible to the deadlock in test environments before it manifests in production.

Why prioritize this

Although this is a MEDIUM severity vulnerability with a CVSS score of 5.5, it poses a practical denial-of-service risk to WiFi-dependent systems. The deadlock requires only local access and standard WiFi operations to trigger, making it moderately easy to exploit in multi-user or untrusted environments. However, the impact is limited to driver unresponsiveness and does not compromise data confidentiality, integrity, or enable privilege escalation, and the issue can be resolved by rebooting. Prioritize patching in environments with frequent WiFi station churn or where local user access is granted.

Risk score, explained

The CVSS 3.1 score of 5.5 (MEDIUM) reflects a local attack vector, low complexity, and no special privileges required, balanced against the impact being limited to availability (a hard hang of the WiFi driver). The absence of confidentiality or integrity impact, combined with the need for local access and standard wireless operations, prevents a higher severity rating. The score appropriately captures a moderate, localized disruption rather than a systemic security breach.

Frequently asked questions

Does this vulnerability affect all Linux WiFi drivers or only MT7925?

This vulnerability is specific to the MediaTek MT7925 driver within the mt76 wireless driver framework. Other WiFi drivers and chipsets are not affected unless they share similar synchronization patterns, which would be documented separately in their own CVEs.

Can this deadlock cause data loss?

No. The deadlock freezes the WiFi driver and may cause the wireless interface to become unresponsive, but it does not corrupt data or cause data loss. A system reboot clears the condition, and any in-flight wireless frames are simply dropped without affecting the integrity of stored data.

Is this vulnerability exploitable remotely?

No, this vulnerability requires local access. A remote attacker cannot trigger the deadlock unless they have already compromised the system or obtained a local user account. Remote WiFi clients cannot directly cause station removal conditions that would trigger this code path.

What should I do if my system hangs due to this vulnerability?

A hard reboot or power cycle will recover the system. To prevent recurrence, apply the kernel patch once available. In the interim, minimize local user access to wireless management operations if operationally feasible.

This analysis is based on publicly available vulnerability data and the Linux kernel CVE description. No exploit code or weaponized proof-of-concept is provided. CVSS score, affected products, and publication dates are derived from the official CVE record. For vendor-specific patch versions, release dates, and backport status, consult your Linux distribution maintainer or the upstream Linux kernel security announcements. This information is provided for educational and defensive security purposes only. Source: NVD (public-domain), retrieved 2026-08-01. Analysis generated by SEC.co (claude-haiku-4-5).