Skip to main content

Open vSwitch EUVDEUVD-2026-86742

| CVE-2026-97611 HIGH
2026-09-25 Linux GHSA-p256-hqvm-38xq
7.8
CVSS 3.1 · Vendor: Linux
View

Attack ChainAIDerived

Hypothetical attack flow derived from CVE metadata – not a confirmed exploit chain

  1. Access
    Local access to OVS host with CAP_NET_ADMIN
  2. Delivery
    Reconfigure flows to trigger mask array realloc
  3. Exploit
    Race datapath packet lookup into RCU window
  4. Execution
    Reader dereferences freed mask array
  5. Impact
    Kernel use-after-free crash (DoS)

Vulnerability Assessment

Exploitation Conditions

Requires a host actively running the in-kernel Open vSwitch datapath (net/openvswitch) with flows being processed; the bug is not reachable on systems that do not load and use OVS. The attacker needs local access with CAP_NET_ADMIN to reconfigure the flow table (adding/removing masks) so that tbl_mask_array_realloc() runs, and must concurrently drive packets through the datapath to hit ovs_flow_tbl_lookup_stats() during the preemptible RCU window between call_rcu() and rcu_assign_pointer(). Limiting factors: exploitation is a timing race (must land inside a narrow window), requires network-admin capability, and yields a kernel crash rather than reliable disclosure or code execution - making stable exploitation difficult and impact primarily denial of service.

Impact

This is a CWE-416 use-after-free arising from an RCU publish-order race in the Linux kernel's Open vSwitch (openvswitch) datapath flow table. The NVD CVSS 3.1 vector (AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H = 7.8) rates confidentiality and integrity as High, but the described bug is a data-path READ of a freed mask array (KASAN slab-use-after-free, 8-byte read in flow_lookup/ovs_flow_tbl_lookup_stats) - this is overwhelmingly a crash/DoS (availability) primitive, not confirmed information disclosure or code execution. The AC:L rating is also questionable: exploitation depends on winning a preemptible RCU race window between call_rcu() and rcu_assign_pointer() while packets traverse the datapath, which is a timing-dependent condition better modeled as AC:H. No EPSS score, no CISA KEV listing, and no public exploit are present; only a KASAN reproducer ('poc/741') is referenced in the description. SSVC data is not provided. Net assessment: real severity is closer to a medium local DoS (~5.0) requiring CAP_NET_ADMIN and an OVS-configured host - the headline 7.8 with C:H/I:H overstates real-world impact. The 'Information Disclosure' tag conflicts with the actual UAF/DoS nature and should be treated as mislabeled.

Exploit ScenarioDerived

On a host running the Open vSwitch kernel datapath, a local attacker with CAP_NET_ADMIN repeatedly reconfigures flows via netlink to force tbl_mask_array_realloc() while simultaneously driving traffic through the OVS datapath. If a packet-processing reader enters ovs_flow_tbl_lookup_stats() during the narrow window after the old mask array is retired via call_rcu() but before the new pointer is published, it dereferences the freed array, causing a use-after-free and kernel crash. Only a KASAN reproducer is referenced; no weaponized public exploit exists.

This Week Schedule remediation this week. Why: HIGH severity (CVSS 7.0-8.9).
Patch available 0.2% exploitation probability (EPSS)

Get an e-mail when this CVE is exploited, patched or re-scored. Free account.

Alert me

AnalysisAIv1 – Sep 25, 2026

Use-after-free in the Linux kernel's in-kernel Open vSwitch datapath lets a local user holding CAP_NET_ADMIN crash the kernel by racing flow-table mask reallocation against packet lookups. Because tbl_mask_array_realloc() retires the old mask array with call_rcu() before repointing tbl->mask_array at the new one, a lookup that enters ovs_flow_tbl_lookup_stats() during that preemptible window can dereference memory that mask_array_rcu_cb() has already kfree()'d, producing the KASAN slab-use-after-free observed on the fast path. Exploitation requires the openvswitch datapath to be loaded and actively processing flows and depends on winning a narrow timing window, so the realistic outcome is kernel panic/denial of service rather than reliable data disclosure or code execution; no public exploit identified at time of analysis, and vendor patches are available (Linux 6.12.111, 6.18.53, 7.2.7, 7.3-rc3).

RemediationAI

Vendor-released patch: Linux kernel 6.12.111, 6.18.53, 7.2.7 and 7.3-rc3, corresponding to upstream stable commits cd982e11684def5d4a9fcfd5354de09032828414, a0d18d21d48a551f82ee344e50efb8a682161489, 035e9c3722067648a99010711d0ce81f42572ef4 and ba4ba11ed6eb8972c69070417fc27b48deb002e8; update to the fixed release for your kernel branch or backport the relevant commit. If an immediate kernel update is not possible, the most effective compensating control is to take the vulnerable code path out of service: unload the openvswitch module (rmmod openvswitch) or run OVS with the userspace netdev datapath instead of the in-kernel datapath, which removes reachability of tbl_mask_array_realloc() entirely at the cost of lower forwarding throughput and loss of kernel-datapath offload features. Because the trigger requires local CAP_NET_ADMIN to reconfigure the flow table (adding or removing masks) while packets traverse the datapath, removing that capability from untrusted local users and containers - via restricted capability sets, user-namespace policy or not granting NET_ADMIN - eliminates the precondition for unprivileged accounts without masking the underlying race. There is no reliable network-perimeter mitigation, since the race is local and internal to the datapath, so patching remains the only complete fix; see https://nvd.nist.gov/vuln/detail/CVE-2026-97611 for the vendor-tracked advisory and commit references. Note that per the assessed vector the exposure is local, timing-dependent and primarily denial of service or limited integrity impact, which should guide prioritization relative to remotely exploitable issues.

Affected VersionsENISA

Linux eac87c413bf9794c14d488998a5265ea5b32f04e <035e9c3722067648a99010711d0ce81f42572ef4
Linux patch: 7.2.7
Linux patch: 6.18.53
Linux eac87c413bf9794c14d488998a5265ea5b32f04e <ba4ba11ed6eb8972c69070417fc27b48deb002e8
Linux eac87c413bf9794c14d488998a5265ea5b32f04e <a0d18d21d48a551f82ee344e50efb8a682161489
Linux eac87c413bf9794c14d488998a5265ea5b32f04e <cd982e11684def5d4a9fcfd5354de09032828414
Linux patch: 6.12.111
Linux 5.9
Linux patch: 0
Linux patch: 7.3-rc3

Affected Packages

euvd linux no fix

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

The flaw sits in the in-kernel Open vSwitch datapath (net/openvswitch), which keeps a table of flow masks used to match packet headers inside ovs_flow_tbl_lookup_stats(). When tbl_mask_array_realloc() replaces that array it reads the old pointer, schedules the old array's release with call_rcu(), and only afterwards performs rcu_assign_pointer(tbl->mask_array, new). call_rcu() waits only for read-side critical sections already in flight, so readers that enter the lookup between the call_rcu() and the pointer swap pick up the stale array in a fresh critical section the pending grace period does not cover; because the realloc runs in process context under ovs_mutex the window is preemptible and can outlast the grace period, letting mask_array_rcu_cb() free the memory before the swap completes. That is a classic CWE-416 use-after-free rooted in an RCU publish-order error, and the fix simply restores the older, correct ordering by publishing the new array before retiring the old one (the kfree_rcu() that call_rcu() replaced ran after the swap). CPE data maps the affected code to the Linux kernel (cpe:2.3:a:linux:linux), ENISA tracks it as EUVD-2026-86742, and the upstream stable fixes are recorded in git.kernel.org commits cd982e11684def5d4a9fcfd5354de09032828414, a0d18d21d48a551f82ee344e50efb8a682161489, 035e9c3722067648a99010711d0ce81f42572ef4 and ba4ba11ed6eb8972c69070417fc27b48deb002e8.

Know when Openvswitch gets its next vulnerability

  • 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

Vendor (Linux) PRIMARY 7.8 HIGH
AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
vuln.today AI 5.3 MEDIUM

Local CAP_NET_ADMIN operation (AV:L/PR:L) exploiting a narrow preemptible RCU race (AC:H); freed-memory read yields kernel crash (A:H) with at most minor integrity (I:L) and no confidentiality (C:N).

3.1 AV:L/AC:H/PR:L/UI:N/S:U/C:N/I:L/A:H
4.0 AV:L/AC:H/AT:N/PR:L/UI:N/VC:N/VI:L/VA:H/SC:N/SI:N/SA:N
SUSE 6.4 MEDIUM
AV:L/AC:H/PR:H/UI:N/S:U/C:H/I:H/A:H
Red Hat 7.0 MEDIUM

Primary rating from Vendor (Linux).

CVSS VectorVendor: Linux

Attack Vector
Local
Attack Complexity
Low
Privileges Required
Low
User Interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

Lifecycle Timeline

4
CVSS changed
Sep 25, 2026 - 15:22 NVD
7.8 (HIGH)
Patch available
Sep 25, 2026 - 11:02 EUVD
CVE Published
Sep 25, 2026 - 10:22 cve.org
HIGH 7.8
CVE Published
Sep 25, 2026 - 10:22 cve.org
UNKNOWN (no severity yet)

DescriptionCVE.org

In the Linux kernel, the following vulnerability has been resolved:

net: openvswitch: fix use-after-free of the flow table mask array

tbl_mask_array_realloc() retires the old mask_array before it stops being reachable:

old = ovsl_dereference(tbl->mask_array); if (old) { ... call_rcu(&old->rcu, mask_array_rcu_cb); }

rcu_assign_pointer(tbl->mask_array, new);

call_rcu() only waits for read-side critical sections already in flight. tbl->mask_array still points at old between the call_rcu() and the rcu_assign_pointer(), so a reader entering ovs_flow_tbl_lookup_stats() in that window picks up old in a fresh critical section that the pending grace period does not cover.

tbl_mask_array_realloc() runs in process context under ovs_mutex, so the window is preemptible and can outlast the grace period. Then mask_array_rcu_cb() frees old before the swap runs:

BUG: KASAN: slab-use-after-free in flow_lookup.constprop.0+0x2bf/0x2f0 Read of size 8 at addr ffff888020b3e018 by task poc/741 flow_lookup.constprop.0+0x2bf/0x2f0 ovs_flow_tbl_lookup_stats+0x4a3/0x5c0 ovs_dp_process_packet+0x19c/0x710 ovs_vport_receive+0x243/0x390 internal_dev_xmit+0x81/0x170 Freed by task 728: kfree+0x16a/0x4e0 rcu_core+0x853/0x1030

Publish the new array before retiring the old one. The kfree_rcu() that call_rcu() replaced ran after the swap.

Executive ViewAI

Why It Matters

A use-after-free in the Linux kernel's Open vSwitch datapath can let a local user with CAP_NET_ADMIN crash affected hosts, causing kernel panic and denial of service. Organizations running Linux systems with the in-kernel openvswitch datapath, especially multi-tenant container or virtualization hosts that grant CAP_NET_ADMIN, should prioritize patching because availability of shared infrastructure could be disrupted. No public exploit identified at time of analysis, but vendor patches are available.

Business Impact: High
Compensating Controls

Apply vendor patch.

Threat Intelligence Overview

EPSS Score
0.2%
Top 96% exploitable
Prevalence
High
openvswitch ships in mainline kernel but is active only on OVS-configured hosts
Data Quality
4 sources
Confidence: Medium

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.

SignalValue
Severity HIGH
CISA KEV No
Public POC No
EPSS 0.2%
Patch available Yes
Active threat No
Deciding rule
HIGH severity (CVSS 7.0-8.9)
What every action level means
Emergency Immediate action required. Criteria: CRITICAL + in CISA KEV (actively exploited) without patch, OR CRITICAL + EPSS > 30% without patch, OR CRITICAL + active threat signals without patch.
Act Now Prioritize within 24-48h. Criteria: in KEV with patch available, OR CRITICAL + public POC, OR HIGH + EPSS > 10%, OR CRITICAL + active threat, OR any CRITICAL severity.
This Week Schedule remediation this week. Criteria: HIGH severity (CVSS 7.0-8.9). Patch within normal change window.
This Month Plan within 30 days. Criteria: MEDIUM severity (CVSS 4.0-6.9), lower exploitation probability. Include in regular patch cycle.
Monitor Track and reassess. Criteria: LOW severity (CVSS 0.1-3.9), minimal exploitation risk. No immediate action needed.

SSVC AssessmentENISA

SSVC Decision· derived
Scheduled
Exploitation· derived
None
System Exposure· derived
Small
Automatable· derived
No
Human Impact
High

Priority Score

39
Low Medium High Critical
KEV: 0
EPSS: 0
CVSS: +39
PoC: 0
Weaponized: 0
Threat intel: 0
Gov advisory: 0
CVE-2018-17205 HIGH POC
7.5 Sep 19

An issue was discovered in Open vSwitch (OvS) 2.7.x through 2.7.6, affecting ofproto_rule_insert__ in ofproto/ofproto.c.

CVE-2016-2074 CRITICAL
9.8 Jul 03

Buffer overflow in lib/flow.c in ovs-vswitchd in Open vSwitch 2.2.x and 2.3.x before 2.3.3 and 2.4.x before 2.4.1 allows

CVE-2017-9214 CRITICAL
9.8 May 23

In Open vSwitch (OvS) 2.7.0, while parsing an OFPT_QUEUE_GET_CONFIG_REPLY type OFP 1.0 message, there is a buffer over-r

CVE-2017-9265 CRITICAL
9.8 May 29

In Open vSwitch (OvS) v2.7.0, there is a buffer over-read while parsing the group mod OpenFlow message sent from the con

CVE-2017-9264 CRITICAL
9.8 May 29

In lib/conntrack.c in the firewall implementation in Open vSwitch (OvS) 2.6.1, there is a buffer over-read while parsing

CVE-2016-10377 HIGH
8.8 May 29

In Open vSwitch (OvS) 2.5.0, a malformed IP packet can cause the switch to read past the end of the packet buffer due to

CVE-2026-97612 HIGH
7.8 Sep 25

Linux kernel MPLS handling retains a stale inner_protocol/inner_network_header record after the last MPLS label is poppe

CVE-2024-22563 HIGH
7.5 Jan 19

openvswitch 2.17.8 was discovered to contain a memory leak via the function xmalloc__ in openvswitch-2.17.8/lib/util.c.

CVE-2017-9263 MEDIUM
6.5 May 29

In Open vSwitch (OvS) 2.7.0, while parsing an OpenFlow role status message, there is a call to the abort() function for

CVE-2022-0669 MEDIUM
6.5 Aug 29

A flaw was found in dpdk. Rated medium severity (CVSS 6.5), this vulnerability is low attack complexity. This Uncontroll

CVE-2017-14970 MEDIUM
5.9 Oct 02

In lib/ofp-util.c in Open vSwitch (OvS) before 2.8.1, there are multiple memory leaks while parsing malformed OpenFlow g

CVE-2023-5366 MEDIUM
5.5 Oct 06

A flaw was found in Open vSwitch that allows ICMPv6 Neighbor Advertisement packets between virtual machines to bypass Op

Vendor StatusVendor

SUSE

Severity: Moderate
Product Status
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise Desktop 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 15 SP7 Affected
SUSE Linux Enterprise High Availability Extension 16.0 Affected

This site uses cookies essential for authentication and security. No tracking or analytics cookies are used. Privacy Policy