CVE-2026-97611

Source
https://cve.org/CVERecord?id=CVE-2026-97611
Import Source
https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-97611.json
JSON Data
https://api.osv.dev/v1/vulns/CVE-2026-97611
Downstream
Published
2026-09-25T10:22:20Z
Modified
2026-09-26T03:48:30Z
Severity
  • 7.8 (High) CVSS_V3 - CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H CVSS Calculator
Summary
net: openvswitch: fix use-after-free of the flow table mask array
Details

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.

Database specific
{
    "cna_assigner":  "Linux",
    "osv_generated_from":  "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/97xxx/CVE-2026-97611.json"
}
References

Affected packages

Git / git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git

Affected ranges

Type
GIT
Repo
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
Events
Introduced
eac87c413bf9794c14d488998a5265ea5b32f04e
Fixed
cd982e11684def5d4a9fcfd5354de09032828414
Fixed
a0d18d21d48a551f82ee344e50efb8a682161489
Fixed
035e9c3722067648a99010711d0ce81f42572ef4
Fixed
ba4ba11ed6eb8972c69070417fc27b48deb002e8

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-97611.json"

Linux / Kernel

Package

Name
Kernel

Affected ranges

Type
ECOSYSTEM
Events
Introduced
5.9.0
Fixed
6.12.111
Type
ECOSYSTEM
Events
Introduced
6.13.0
Fixed
6.18.53
Type
ECOSYSTEM
Events
Introduced
6.19.0
Fixed
7.2.7

Database specific

source
"https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-97611.json"