KernelScan.io

HIGH

mwifiex Timer UAF

CVE-2026-46069

CVSS 7.8 / 10.0 KernelScan AI

CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

01

In the Linux kernel, the following vulnerability has been resolved: wifi: mwifiex: fix use-after-free in mwifiex_adapter_cleanup() The mwifiex_adapter_cleanup() function uses timer_delete() (non-synchronous) for the wakeup_timer before the adapter structure is freed. This is incorrect because timer_delete() does not wait for any running timer callback to complete. If the wakeup_timer callback (wakeup_timer_fn) is executing when mwifiex_adapter_cleanup() is called, the callback will continue to access adapter fields (adapter->hw_status, adapter->if_ops.card_reset, etc.) which may be freed by mwifiex_free_adapter() called later in the mwifiex_remove_card() path. Use timer_delete_sync() instead to ensure any running timer callback has completed before returning.

02

Engine v0.2.0

Risk summary

Local attackers with low privileges can trigger a use-after-free vulnerability in the mwifiex WiFi driver during device removal. This can lead to kernel memory corruption, privilege escalation, or system crashes when the wakeup timer callback accesses freed adapter structures.

Affecteddrivers/net/wireless/marvell/mwifiex/init.c (WiFi driver)

Vulnerability analysis

The root cause is improper timer cleanup in mwifiex_adapter_cleanup() which uses timer_delete() instead of timer_delete_sync(). Since timer_delete() is non-synchronous, it doesn't wait for running timer callbacks to complete. If the wakeup_timer_fn callback is executing during adapter cleanup, it will continue accessing adapter fields (hw_status, if_ops.card_reset) after the adapter structure is freed by mwifiex_free_adapter(). The fix replaces timer_delete() with timer_delete_sync() to ensure the timer callback completes before the adapter is freed. This vulnerability requires local access and the ability to trigger WiFi device removal, making it reachable through device hotplug or driver unload operations.

03

BranchFixed inPatch commit
6.126.12.8663fe3389b3e0
6.186.18.274e179a60a60c
6.66.6.14011869ce402d9
7.07.0.4030abbae49cf
mainline7.1-rc1ae5e95d41574