KernelScan.io

HIGH Introduced in 5.19

mt76 ExtPhy UAF

CVE-2026-90353

CVSS 7.0 / 10.0 NVD

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

KernelScan AI6.7MEDIUM

01

In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7915: fix ext PHY use-after-free on register error path After mt7915_register_ext_phy() succeeded, a failure of the main PHY mt7915_init_debugfs() or mt7915_coredump_register() unwound through free_phy2, which called ieee80211_free_hw() on the ext PHY hw while it was still registered with mac80211, since mt76_unregister_device() only unregisters the main hw. Unregister the ext PHY (thermal + phy + hw) first and skip the redundant free.

02

Engine v0.6.0

Risk summary

A use-after-free in the MediaTek MT7915 WiFi driver occurs when a resource allocation fails during device initialization after the secondary PHY has already been registered. The cleanup path frees the ext PHY hardware structure while mac80211 still holds references to it, leading to potential kernel memory corruption or crash. The bug requires the specific WiFi hardware to be present and is triggered under memory pressure during driver init.

Affecteddrivers/net/wireless/mediatek/mt76/mt7915/init.c (mt76 WiFi driver)

Vulnerability analysis

During WiFi driver initialization for the MediaTek MT7915 chipset, if a resource allocation fails after the secondary (ext) PHY has been successfully registered, the error-handling path frees the ext PHY's hardware structure without first unregistering it from the mac80211 subsystem. This leaves mac80211 with dangling references to freed memory, and any subsequent operation on that PHY triggers a use-after-free. The fix changes the error path to properly unregister the ext PHY — including its thermal, PHY, and hardware components — before continuing cleanup, and clears the pointer so the later generic teardown does not attempt a redundant free. The vulnerable code path is reachable only on systems with MT7915 WiFi hardware present, and the error is triggered when a memory allocation fails during driver initialization, which a local unprivileged user could attempt to induce through memory pressure, though timing it to hit the exact init step is difficult.

03

BranchIntroducedFixed inPatch commit
6.15.196.1.188aa55bec92ba7
6.125.196.12.11034058ad122f7
6.185.196.18.52a7fd3bae8e11
6.65.196.6.157ad706fcf6255
7.25.197.2.6648f5f03ff50
mainline5.197.315b960014f24
cip/6.15.196.1.189-cip61aa55bec92ba7
cip/6.1-rt5.196.1.189-cip61-rt32aa55bec92ba7
cip/6.125.196.12.111-cip3234058ad122f7

04

State of the newest release of each Civil Infrastructure Platform SLTS tree, from CIP's own fix records.

CIP treeState
cip/6.12Fixed in 6.12.111-cip32
cip/6.1Fixed in 6.1.189-cip61
cip/6.1-rtFixed in 6.1.189-cip61-rt32