{"id":"CVE-2026-97611","revision":"bed4362738854662b1ce7804b517eb48","records":[{"revision":"bed4362738854662b1ce7804b517eb48","observedAt":"2026-10-23T15:48:27.903+00:00","statement":{"source":"cve-program","id":"CVE-2026-97611","aliases":[],"title":"net: openvswitch: fix use-after-free of the flow table mask array","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nnet: openvswitch: fix use-after-free of the flow table mask array\n\ntbl_mask_array_realloc() retires the old mask_array before it stops being\nreachable:\n\n\told = ovsl_dereference(tbl->mask_array);\n\tif (old) {\n\t\t...\n\t\tcall_rcu(&old->rcu, mask_array_rcu_cb);\n\t}\n\n\trcu_assign_pointer(tbl->mask_array, new);\n\ncall_rcu() only waits for read-side critical sections already in flight.\ntbl->mask_array still points at old between the call_rcu() and the\nrcu_assign_pointer(), so a reader entering ovs_flow_tbl_lookup_stats() in\nthat window picks up old in a fresh critical section that the pending\ngrace period does not cover.\n\ntbl_mask_array_realloc() runs in process context under ovs_mutex, so the\nwindow is preemptible and can outlast the grace period. Then\nmask_array_rcu_cb() frees old before the swap runs:\n\n  BUG: KASAN: slab-use-after-free in flow_lookup.constprop.0+0x2bf/0x2f0\n  Read of size 8 at addr ffff888020b3e018 by task poc/741\n   flow_lookup.constprop.0+0x2bf/0x2f0\n   ovs_flow_tbl_lookup_stats+0x4a3/0x5c0\n   ovs_dp_process_packet+0x19c/0x710\n   ovs_vport_receive+0x243/0x390\n   internal_dev_xmit+0x81/0x170\n  Freed by task 728:\n   kfree+0x16a/0x4e0\n   rcu_core+0x853/0x1030\n\nPublish the new array before retiring the old one. The kfree_rcu() that\ncall_rcu() replaced ran after the swap.","state":0,"publishedAt":"2026-09-25T10:22:20.827+00:00","modifiedAt":"2026-10-19T09:10:15.022+00:00","affected":[{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"unaffected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/openvswitch/flow_table.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"4c98b492e9ed63f9ca3e23566d9a6a4f235944f4\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"4016ead17acd75312c066ecd47c4b7f0a81ceaa2\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"017dbbf0d6c319a487f68e22f56d91fc787d5525\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"76678217cdabc41e3c74c23b45b62086ffb8fe7a\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"cd982e11684def5d4a9fcfd5354de09032828414\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"a0d18d21d48a551f82ee344e50efb8a682161489\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"035e9c3722067648a99010711d0ce81f42572ef4\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        },\n                        {\n                            \"version\": \"eac87c413bf9794c14d488998a5265ea5b32f04e\",\n                            \"lessThan\": \"ba4ba11ed6eb8972c69070417fc27b48deb002e8\",\n                            \"status\": \"affected\",\n                            \"versionType\": \"git\"\n                        }\n                    ]\n                }"},{"ecosystem":"Vendor product","name":"Linux","ranges":[],"versions":[],"rawVersionEvidence":"{\n                    \"product\": \"Linux\",\n                    \"vendor\": \"Linux\",\n                    \"defaultStatus\": \"affected\",\n                    \"repo\": \"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\n                    \"programFiles\": [\n                        \"net/openvswitch/flow_table.c\"\n                    ],\n                    \"versions\": [\n                        {\n                            \"version\": \"5.9\",\n                            \"status\": \"affected\"\n                        },\n                        {\n                            \"version\": \"0\",\n                            \"lessThan\": \"5.9\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.10.271\",\n                            \"lessThanOrEqual\": \"5.10.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"5.15.222\",\n                            \"lessThanOrEqual\": \"5.15.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.1.189\",\n                            \"lessThanOrEqual\": \"6.1.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.6.158\",\n                            \"lessThanOrEqual\": \"6.6.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.12.111\",\n                            \"lessThanOrEqual\": \"6.12.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"6.18.53\",\n                            \"lessThanOrEqual\": \"6.18.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.2.7\",\n                            \"lessThanOrEqual\": \"7.2.*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"semver\"\n                        },\n                        {\n                            \"version\": \"7.3\",\n                            \"lessThanOrEqual\": \"*\",\n                            \"status\": \"unaffected\",\n                            \"versionType\": \"original_commit_for_fix\"\n                        }\n                    ]\n                }"}],"metrics":[{"system":"CVSS 3.1","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","score":7.8,"severity":"HIGH"}],"references":["https://git.kernel.org/stable/c/4c98b492e9ed63f9ca3e23566d9a6a4f235944f4","https://git.kernel.org/stable/c/4016ead17acd75312c066ecd47c4b7f0a81ceaa2","https://git.kernel.org/stable/c/017dbbf0d6c319a487f68e22f56d91fc787d5525","https://git.kernel.org/stable/c/76678217cdabc41e3c74c23b45b62086ffb8fe7a","https://git.kernel.org/stable/c/cd982e11684def5d4a9fcfd5354de09032828414","https://git.kernel.org/stable/c/a0d18d21d48a551f82ee344e50efb8a682161489","https://git.kernel.org/stable/c/035e9c3722067648a99010711d0ce81f42572ef4","https://git.kernel.org/stable/c/ba4ba11ed6eb8972c69070417fc27b48deb002e8"],"sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-97611","license":"CVE Program Terms of Use","key":"cve-program:CVE-2026-97611","identifiers":["CVE-2026-97611"]},"retained":false,"historicalAffected":[]}],"coverage":[]}