CVE-2026-31695
High · 7.8CVSS
7.8
EPSS
0.2%
Published
May 1, 2026
CISA due date
—
Cloudanix analysis
A flaw in some Linux systems could let someone who already has local access crash the machine or possibly gain more control, so affected systems should be updated.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Privilege Gain
- Component
- OS kernel
- Class
- Use After Free
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
This is a Linux kernel use-after-free in the virt_wifi network driver. virt_wifi devices can retain a parent device pointer through SET_NETDEV_DEV that may reference memory already freed while the virtual Wi-Fi netdevice is being unregistered. If an ethtool operation is performed concurrently against the virt_wifi interface during teardown, the ethtool netlink path can call pm_runtime_get_sync() through ethnl_ops_begin() using the stale dev.parent pointer, potentially causing kernel memory corruption. The CVSS vector indicates local, low-complexity exploitation requiring low privileges and no user interaction, with potential impact to confidentiality, integrity, and availability if the bug is made reliably exploitable.
Why it matters to the business
Systems running affected Linux kernels with virt_wifi functionality exposed may be vulnerable to local privilege escalation or kernel crashes. In practical terms, an attacker who already has a local foothold, such as a compromised low-privileged account or workload with sufficient access to network configuration interfaces, could attempt to destabilize the host or potentially gain higher privileges. Because this is a kernel-level flaw, successful exploitation can affect the whole system rather than a single application. Current EPSS is very low and no KEV listing or known ransomware use is reported, so urgency is lower than actively exploited internet-facing vulnerabilities, but kernel updates should still be prioritized for multi-user systems, developer workstations, virtualization hosts, containers with elevated network privileges, and environments that allow untrusted local code execution.
How an attack unfolds
An attacker first needs local code execution on a Linux system running an affected kernel. They then identify whether virt_wifi netdevices can be created or are present and whether they can interact with netlink/ethtool operations against those interfaces. The attacker races virt_wifi device unregistration against ethtool feature-setting operations. During the race, the virt_wifi netdevice may still contain a parent device pointer that refers to freed memory. When the ethtool generic netlink handler begins processing the operation, it may invoke runtime power-management logic on that stale parent pointer, triggering a use-after-free. The most likely observable result is a kernel oops, panic, or KASAN report; with additional exploit engineering, kernel memory corruption could potentially be shaped into privilege escalation. No public exploit maturity is reported in the provided data, and this vulnerability is not listed in CISA KEV.
How to fix it
Apply a Linux kernel update that includes the virt_wifi change removing SET_NETDEV_DEV usage for virt_wifi netdevices, and also review whether related ethtool subsystem fixes are included by the distribution or kernel vendor. No exact fixed versions were provided in the input, so use vendor advisories, distribution errata, or upstream stable kernel release notes to identify the corrected package for each platform. Where immediate patching is not possible, reduce exposure by disabling or preventing loading of the virt_wifi module where it is not required, limiting local user access, restricting creation and management of network devices to trusted administrators, and avoiding privileged or CAP_NET_ADMIN-capable containers for untrusted workloads. Reboot into the updated kernel after patching; installing the package alone is not sufficient if the running kernel remains vulnerable.
How to confirm the fix worked
Confirm the running kernel, not just the installed kernel package, has been updated to a vendor release containing the virt_wifi fix. Validate with commands such as uname -r, package manager queries, and vendor advisory mappings. Check whether virt_wifi is currently loaded with lsmod or present under /sys/module/virt_wifi. Confirm that vulnerable systems no longer expose the old behavior by reviewing the patched source or vendor changelog for the removal of SET_NETDEV_DEV in the virt_wifi driver. After remediation, verify systems have rebooted into the fixed kernel and that no recurring kernel logs show virt_wifi, ethtool netlink, ethnl_set_features, ethnl_ops_begin, pm_runtime_get_sync, or __pm_runtime_resume crashes. In high-assurance environments, run controlled regression testing for virt_wifi interface creation/removal and ethtool feature changes on a non-production host using the fixed kernel.
Typical attack path
- Obtain local low-privileged execution on a Linux host running an affected kernel.
- Check whether virt_wifi support is available, loaded, or usable on the system.
- Create or target a virt_wifi network device if permitted by local privileges and namespace/capability configuration.
- Trigger virt_wifi device teardown or unregistration while concurrently issuing ethtool generic netlink feature operations against the same device.
- Win the race condition so the ethtool path dereferences a stale dev.parent pointer during runtime power-management handling.
- Cause a kernel crash or attempt to leverage the resulting kernel use-after-free for privilege escalation.
How to detect it
Look for evidence of attempted or successful triggering in kernel logs, system journals, crash dumps, and endpoint telemetry. Relevant sources include dmesg, journalctl -k, /var/log/kern.log, /var/log/messages, /var/log/syslog, kdump/vmcore artifacts, audit logs for ethtool or network-management activity, and EDR records showing local processes issuing ethtool/netlink operations. Search for kernel oops, panic, BUG, KASAN, slab-use-after-free, or general protection fault messages that include virt_wifi, ethtool generic netlink functions, ethnl_ops_begin, ethnl_set_features, pm_runtime_get_sync, or __pm_runtime_resume. Investigate repeated interface creation/removal, ethtool feature changes against virtual Wi-Fi devices, crashes correlated with local user activity, or privileged containers granted network administration capabilities. Since no specific public exploit or actor activity is reported, detection should focus on behavioral evidence and crash signatures rather than fixed malware indicators.
- BUG: KASAN: slab-use-after-free in __pm_runtime_resume
- slab-use-after-free in __pm_runtime_resume
- __pm_runtime_resume+
- ethnl_ops_begin+
- ethnl_set_features+
- genl_family_rcv_msg_doit+
- genl_rcv_msg+
- netlink_sendmsg+
- wifi: virt_wifi
- virt_wifi
- SET_NETDEV_DEV
- pm_runtime_get_sync
- dev.parent
- KASAN: slab-use-after-free
- Read of size 2 at addr
- /sys/module/virt_wifi
- virt_wifi.ko
What your security team should do
- Prioritize kernel updates for shared Linux servers, developer workstations, virtualization hosts, CI runners, and container hosts where untrusted local users or workloads may execute code.
- Inventory systems with virt_wifi support enabled or loaded, and treat those as the highest-priority subset for remediation.
- Confirm patched systems have rebooted into the fixed kernel; track installed-versus-running kernel drift.
- Temporarily disable or block virt_wifi where it is not operationally required.
- Restrict CAP_NET_ADMIN and other network-administration privileges from untrusted users and containers.
- Monitor kernel logs for crash signatures involving virt_wifi, ethtool generic netlink, runtime power management, and KASAN use-after-free reports.
- Because EPSS is currently low, not KEV-listed, and no exploit maturity is reported, handle through normal kernel patch SLAs unless local multi-tenant or untrusted workload risk increases the exposure.
The record
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
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|
Related vulnerabilities
- CVE-2026-109618 PHP uses longjmp() for out-of-memory (OOM) errors to exit the current context and abort… CWE-416
- CVE-2026-109619 PHP has various global state that temporarily points into request memory. CWE-416
- CVE-2026-112402 Pillow is a Python imaging library. CWE-416
- CVE-2026-112396 Pillow is a Python imaging library. CWE-416
- CVE-2025-55654 A use-after-free in the gf_filter_pid_get_packet function (filter_core/filter_pid.c) of… CWE-416
- CVE-2026-17591 A flaw was found in libarchive. CWE-416
- CVE-2026-92392 During an upload, curl mishandles HTTP/2 `RST_STREAM` received from the server (with… CWE-416
- CVE-2026-109268 ImageMagick before 6.9.13-57 and 7.x before 7.1.2-32 contains a use after free… CWE-416