Attack ChainAIDerived
Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain
-
AccessObtain CAP_NET_ADMIN via user namespace
-
DeliveryCreate virt_wifi link over dormant lower device
-
ExploitSupply invalid name to fail registration
-
Executionfree_netdev frees still-queued netdev
-
Persistlinkwatch_fire_event dereferences freed entry
-
ImpactCorrupt kernel memory for privilege escalation
Vulnerability Assessment
| Exploitation Conditions | Requires: (1) local access with the ability to create virtual network interfaces - effectively CAP_NET_ADMIN in a network namespace, which an unprivileged user may obtain via user namespaces on some distributions; (2) the virt_wifi module must be available/loaded, which is uncommon outside test, ChromeOS/Android-style, or development environments; (3) the chosen lower device must be in the dormant operstate so the stacked operstate transfer queues the netdev on the linkwatch event list; and (4) the attacker must force register_netdevice() to fail after that point, which is attacker-controllable by passing an invalid interface name such as 'bad/name'. Limiting factors: exploitation is strictly local (not remote), depends on the rarely-deployed virt_wifi driver being present, and requires network-admin capability - these substantially narrow realistic exposure despite the 7.8 score. |
| Impact | This is a local use-after-free in the Linux kernel's virt_wifi driver (CVE-2026-98311). The CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H, base 7.8) describes a locally-reachable, low-privilege flaw with full confidentiality, integrity and availability impact - consistent with a kernel memory-corruption bug that can enable privilege escalation. However, exploitation signals point to LOW real-world urgency: EPSS is only 0.22% (11th percentile), there is NO CISA KEV listing, and no public exploit code is identified in the provided data. Exploitation status is therefore 'no public exploit identified at time of analysis.' The signals are internally consistent (low EPSS + no KEV + local-only vector), so this is best treated as a patch-in-normal-cycle hardening fix rather than an emergency. Two caveats: (1) the vector is AV:L and PR:L, meaning an attacker must already have local code execution with the ability to create virtual network links (CAP_NET_ADMIN, potentially obtainable via unprivileged user namespaces) - this is not remotely exploitable despite the high impact scores; (2) reliably weaponizing a UAF-via-linkwatch into code execution is non-trivial, so the H/H/H impact represents worst-case potential, not demonstrated exploitation. CWE is unpopulated in the input; the description makes this unambiguously a use-after-free (CWE-416). |
| Exploit ScenarioDerived | A local attacker with the ability to create network links (e.g., CAP_NET_ADMIN, possibly via an unprivileged user namespace) creates a virt_wifi device over a lower interface that is in the dormant state, then forces register_netdevice() to fail by supplying an invalid name such as 'bad/name'. The netdev is freed while still queued on the linkwatch event list, and a subsequent linkwatch_fire_event() dereferences the freed list entry, corrupting kernel memory for potential privilege escalation. No public exploit code is identified at time of analysis. |
Get an e-mail when this CVE is exploited, patched or re-scored. Free account.
Alert meAnalysisAIv1 – Oct 07, 2026
Local use-after-free in the Linux kernel's virt_wifi virtual wireless driver (CVE-2026-98311) lets a low-privileged local attacker with network-admin capability corrupt kernel memory, causing a crash and potentially enabling code execution in kernel context. virt_wifi_newlink() propagates the lower device's operstate before the new netdevice is registered, so a dormant lower device queues the still-uninitialized netdev on the linkwatch event list; if registration later fails - attacker-controllable by supplying an interface name such as 'bad/name' - free_netdev() releases the object and the subsequent linkwatch_fire_event() dereferences freed memory. Exposure is narrow: exploitation is strictly local, requires CAP_NET_ADMIN (attainable via user namespaces on some distributions) plus the rarely deployed virt_wifi module, no public exploit code has been identified, CISA KEV does not list this issue, and EPSS is only 0.22% (11th percentile).
RemediationAI
Apply the vendor-released patch: upgrade to Linux 5.10.271, 5.15.222, 6.1.189, 6.6.158, 6.12.112, 6.18.54 or 7.2.8 (or mainline 7.3-rc4 or later), as documented in the kernel.org stable commits referenced above and tracked at https://nvd.nist.gov/vuln/detail/CVE-2026-98311. If virt_wifi is not needed - typical on production servers - unload it (modprobe -r virt_wifi) and blacklist it (for example, an 'install virt_wifi /bin/false' entry in modprobe.d) to eliminate the attack surface entirely; the trade-off is that any virtual-wifi test or development functionality relying on the module stops working. Because the prerequisite CAP_NET_ADMIN is sometimes reachable by unprivileged users through user namespaces, hardening that path with kernel.unprivileged_userns_clone=0 (Debian/Ubuntu) or user.max_user_namespaces=0 (RHEL) narrows exploitability; the side effect is that unprivileged containers, rootless Podman/Docker and similar sandboxes will break, so validate in a staging environment first. Additionally, audit which local accounts and namespaces hold CAP_NET_ADMIN, since acquiring that capability is the gating condition for this local use-after-free.
Affected VersionsENISA
Affected Packages
Source: OSV (Open Source Vulnerabilities)
Affects your stack
Affects 1 package in euvd
Checking this CVE against your own stacks and servers is part of the Basic plan and up.
Technical ContextAI · show details
virt_wifi is a software-only virtual 802.11 driver ('wifi: virt_wifi') that creates a stacked netdev on top of an existing lower device; it is mainly used for testing and on ChromeOS/Android-style or development platforms and is disabled on most production kernels. The defect is an initialization-ordering error in virt_wifi_newlink(): netif_stacked_transfer_operstate() is invoked before register_netdevice(). When the lower device is dormant, that stacked transfer schedules the new netdev onto the global linkwatch event list (lweventlist) while the object is still unregistered and uninitialized. If registration then fails - the attacker can force this with an invalid interface name such as 'bad/name' - free_netdev() immediately frees the netdev, but the stale pointer remains on lweventlist, so a later linkwatch_fire_event() accesses freed memory. The root cause class is a use-after-free (CWE-416) resulting from registering an object onto a shared work list before it is fully initialized and from failing to dequeue it on the error path. The upstream fix moves the operstate transfer to after netdev_upper_dev_link(), matching the ordering already used by macvlan and ipvlan.
Know when the next one hits your stack
- Watch products and get an email when something new is published
- Check this CVE against your own stack and servers
- Exploit and PoC references, threat intelligence from 22 sources
No credit card · 7-day full trial
Severity by source
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Attacker needs local CAP_NET_ADMIN to create virt_wifi links (AV:L, PR:L); the failure condition is attacker-controlled via an invalid name (AC:L); a kernel UAF yields full C/I/A impact within the kernel's scope (S:U).
Primary rating from Vendor (Linux).
CVSS VectorVendor: Linux
Lifecycle Timeline
4DescriptionCVE.org
In the Linux kernel, the following vulnerability has been resolved:
wifi: virt_wifi: don't transfer operstate before register
virt_wifi_newlink() calls netif_stacked_transfer_operstate() before register_netdevice(). If the lower device is dormant, that queues the new netdev on lweventlist while it is still uninitialized. If registration fails after that, for example because of an invalid name such as "bad/name", free_netdev() immediately frees the object. A later linkwatch_fire_event() then use-after-frees the list entry.
Move the transfer to after netdev_upper_dev_link(), as macvlan and ipvlan already do.
Executive ViewAI
A high-severity memory-corruption flaw in the Linux kernel's virt_wifi virtual wireless driver allows a local user holding network-administration privileges to crash the kernel and potentially execute code at kernel privilege level. Exploitation requires local access, the rarely loaded virt_wifi module, and the ability to obtain network-administration rights (possible on distributions that permit unprivileged user namespaces), and no public exploit code has been identified at time of analysis, so the practical risk to the organization is limited to a narrow subset of Linux hosts rather than the general estate. Leadership should care because a successful kernel-level compromise of any affected host would bypass normal application controls and could not be contained by endpoint or application-layer defenses.
Apply vendor patch.
Threat Intelligence Overview
How this decision was reached
The engine reads each signal below and applies a fixed list of rules from top to bottom. The first rule that matches sets the recommended action – like a statement, every line is shown.
What every action level means
SSVC AssessmentENISA
Priority Score
Attack Technique
Information disclosure occurs when an application unintentionally exposes sensitive data that aids attackers in reconnaissance or directly compromises security.
EUVD-2026-93296
GHSA-f5fm-f6q9-vwv9
NVD
CVE.org
EPSS
Exploit-DB