CVE-2026-31695: wifi: virt_wifi: remove SET_NETDEV_DEV to avoid use-after-free
In the Linux kernel, the following vulnerability has been resolved:
wifi: virt_wifi: remove SET_NETDEV_DEV to avoid use-after-free
Currently we execute `SET_NETDEV_DEV(dev, &priv->lowerdev->dev)` for
the virt_wifi net devices. However, unregistering a virt_wifi device in
netdev_run_todo() can happen together with the device referenced by
SET_NETDEV_DEV().
It can result in use-after-free during the ethtool operations performed
on a virt_wifi device that is currently being unregistered. Such a net
device can have the `dev.parent` field pointing to the freed memory,
but ethnl_ops_begin() calls `pm_runtime_get_sync(dev->dev.parent)`.
Let's remove SET_NETDEV_DEV for virt_wifi to avoid bugs like this:
==================================================================
BUG: KASAN: slab-use-after-free in __pm_runtime_resume+0xe2/0xf0
Read of size 2 at addr ffff88810cfc46f8 by task pm/606
Call Trace:
<TASK>
dump_stack_lvl+0x4d/0x70
print_report+0x170/0x4f3
? __pfx__raw_spin_lock_irqsave+0x10/0x10
kasan_report+0xda/0x110
? __pm_runtime_resume+0xe2/0xf0
? __pm_runtime_resume+0xe2/0xf0
__pm_runtime_resume+0xe2/0xf0
ethnl_ops_begin+0x49/0x270
ethnl_set_features+0x23c/0xab0
? __pfx_ethnl_set_features+0x10/0x10
? kvm_sched_clock_read+0x11/0x20
? local_clock_noinstr+0xf/0xf0
? local_clock+0x10/0x30
? kasan_save_track+0x25/0x60
? __kasan_kmalloc+0x7f/0x90
? genl_family_rcv_msg_attrs_parse.isra.0+0x150/0x2c0
genl_family_rcv_msg_doit+0x1e7/0x2c0
? __pfx_genl_family_rcv_msg_doit+0x10/0x10
? __pfx_cred_has_capability.isra.0+0x10/0x10
? stack_trace_save+0x8e/0xc0
genl_rcv_msg+0x411/0x660
? __pfx_genl_rcv_msg+0x10/0x10
? __pfx_ethnl_set_features+0x10/0x10
netlink_rcv_skb+0x121/0x380
? __pfx_genl_rcv_msg+0x10/0x10
? __pfx_netlink_rcv_skb+0x10/0x10
? __pfx_down_read+0x10/0x10
genl_rcv+0x23/0x30
netlink_unicast+0x60f/0x830
? __pfx_netlink_unicast+0x10/0x10
? __pfx___alloc_skb+0x10/0x10
netlink_sendmsg+0x6ea/0xbc0
? __pfx_netlink_sendmsg+0x10/0x10
? __futex_queue+0x10b/0x1f0
____sys_sendmsg+0x7a2/0x950
? copy_msghdr_from_user+0x26b/0x430
? __pfx_____sys_sendmsg+0x10/0x10
? __pfx_copy_msghdr_from_user+0x10/0x10
___sys_sendmsg+0xf8/0x180
? __pfx____sys_sendmsg+0x10/0x10
? __pfx_futex_wait+0x10/0x10
? fdget+0x2e4/0x4a0
__sys_sendmsg+0x11f/0x1c0
? __pfx___sys_sendmsg+0x10/0x10
do_syscall_64+0xe2/0x570
? exc_page_fault+0x66/0xb0
entry_SYSCALL_64_after_hwframe+0x77/0x7f
</TASK>
This fix may be combined with another one in the ethtool subsystem:
https://lore.kernel.org/all/20260322075917.254874-1-alex.popov@linux.com/T/#u
Security readout for executives and security teams
Plain-English summary
A flaw in Linux's virtual Wi-Fi networking code can access memory after it has been freed while a virtual interface is being removed. A local, low-privileged user may be able to trigger memory corruption, potentially affecting confidentiality, integrity, and system availability. Exposure depends on the affected kernel code and virt_wifi usage.
Executive priority
Prioritize remediation on multi-user or otherwise locally accessible systems using virt_wifi. Schedule prompt kernel updates through normal change control. Systems without virt_wifi exposure are lower priority, but should still be checked because the supplied version data does not provide complete distribution-specific package mapping.
Technical view
virt_wifi assigned its network device parent to the lower device. Concurrent unregistration could free that parent while an ethtool operation called runtime power-management functions through the stale pointer, producing a slab use-after-free. The Linux fix removes the parent assignment. CVSS 3.1 is 7.8: local access, low privileges, no user interaction, and high potential impact.
Likely exposure
Likely exposure is limited to Linux systems running an affected kernel build where virt_wifi devices can be created or operated. The bundle lists affected release information spanning 5.15 through 7.0, but its version formatting is insufficient to determine every vulnerable range. Confirm exact status against distribution advisories and included stable commits.
Exploitation context
The supplied record does not identify public exploitation, and the CVE is not listed as KEV in the bundle. The demonstrated failure was detected by KASAN during ethtool activity concurrent with virt_wifi device unregistration. Treat exploitation as unconfirmed; the CVSS assessment nevertheless indicates potentially severe local impact.
Researcher notes
The race involves virt_wifi teardown and ethtool operations, leaving net_device.dev.parent referencing freed lower-device memory before ethnl_ops_begin invokes pm_runtime_get_sync. The cited fix removes SET_NETDEV_DEV from virt_wifi. The bundle notes a possibly complementary ethtool fix, but does not establish that it is required for remediation.
Mitigation direction
Update to a vendor-supported kernel containing the applicable stable fix or backport.
Confirm the chosen kernel package includes the virt_wifi parent-pointer removal.
Where operationally acceptable, restrict virt_wifi availability until patched.
Review Linux distribution guidance for precise affected and fixed package versions.
Validation and detection
Inventory kernel versions on systems that enable or use virt_wifi.
Map installed packages to distribution advisories and the referenced stable commits.
After updating, confirm the running kernel is the remediated build.
Review kernel diagnostics for use-after-free reports involving virt_wifi, ethtool, or runtime power management.
Generated from the cited source records. This long-tail analysis has not been individually reviewed by a named human.
Potential ATT&CK relevance
Conservative CVE-to-ATT&CK context
These mappings and lookup hints may be relevant to the vulnerability behavior, CWE, affected product, or exposure path. Glexia-inferred context is not an official MITRE, ATT&CK, CWE, or CVE Program mapping.
ATT&CK lookup starting points
Use these exact CWE pages and searches to review the Glexia ATT&CK library from this CVE's weakness and description context.
cve · low confidence lookup
CVE-2026-31695 mapping review
Open the CVE-to-ATT&CK bridge for reviewed, inferred, or future official mappings tied to this CVE.
These fields come from the CVE record and ADP containers, not from Glexia's Take. They preserve time-varying source decisions such as CISA SSVC, KEV status, CVSS metrics, and provider references.
1CVSS vectors
3Timeline events
0ADP providers
8Source links
CVSS vector scores
1 official score
We collect every scored CVSS vector available in the official CNA and ADP containers. When more than one version is present, the table keeps the source vectors side by side instead of collapsing them into the highest score.