{"api_version":"1","generated_at":"2026-10-23T00:32:59+00:00","cve":"CVE-2026-98251","urls":{"html":"https://cve.report/CVE-2026-98251","api":"https://cve.report/api/cve/CVE-2026-98251.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-98251","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-98251"},"summary":{"title":"openvswitch: avoid reallocating confirmed conntrack labels","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nopenvswitch: avoid reallocating confirmed conntrack labels\n\novs_ct_get_conn_labels() adds the labels extension when a conntrack\nentry does not have one.  Confirmed conntracks can be read locklessly,\nso adding an extension may reallocate and free the extension block\nwhile another CPU accesses it.\n\nOnly add the extension for unconfirmed conntracks.  A confirmed\nconntrack without labels now fails the caller's label operation instead\nof reallocating its extension storage.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-10-06 09:18:13","updated_at":"2026-10-19 10:18:25"},"problem_types":[],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"7.8","severity":"HIGH","vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","data":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"}}],"references":[{"url":"https://git.kernel.org/stable/c/d16f089bd700f45d720ce989d5495e1dc3be0cf8","name":"https://git.kernel.org/stable/c/d16f089bd700f45d720ce989d5495e1dc3be0cf8","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7ff688aceada1160331a789385ea146f62fbddf7","name":"https://git.kernel.org/stable/c/7ff688aceada1160331a789385ea146f62fbddf7","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/579d87ec1e1e85729a6cb2c25961e58beb78640c","name":"https://git.kernel.org/stable/c/579d87ec1e1e85729a6cb2c25961e58beb78640c","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/2e6dd889c325abf23821e1459c3ffef59b7f0009","name":"https://git.kernel.org/stable/c/2e6dd889c325abf23821e1459c3ffef59b7f0009","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/4371d79ea74407fb992c985b1f94391e35bb8289","name":"https://git.kernel.org/stable/c/4371d79ea74407fb992c985b1f94391e35bb8289","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/3f118c8217c109fd13ca61caa301d72c483897ef","name":"https://git.kernel.org/stable/c/3f118c8217c109fd13ca61caa301d72c483897ef","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/05eab8dced6bf4d3009a6eeee16ddac99047dc83","name":"https://git.kernel.org/stable/c/05eab8dced6bf4d3009a6eeee16ddac99047dc83","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/8c9fcc6c33950d3db551af664d1fd3d998bfee56","name":"https://git.kernel.org/stable/c/8c9fcc6c33950d3db551af664d1fd3d998bfee56","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-98251","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-98251","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b 4371d79ea74407fb992c985b1f94391e35bb8289 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b 7ff688aceada1160331a789385ea146f62fbddf7 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b 05eab8dced6bf4d3009a6eeee16ddac99047dc83 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b 579d87ec1e1e85729a6cb2c25961e58beb78640c git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b 2e6dd889c325abf23821e1459c3ffef59b7f0009 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b d16f089bd700f45d720ce989d5495e1dc3be0cf8 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b 8c9fcc6c33950d3db551af664d1fd3d998bfee56 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c2ac667358708d7cce64c78f58af6adf4c1e848b 3f118c8217c109fd13ca61caa301d72c483897ef git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 4.3","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 4.3 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.271 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.222 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.189 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.158 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.112 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.54 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2.8 7.2.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.3 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"98251","cve":"CVE-2026-98251","epss":"0.001840000","percentile":"0.073030000","score_date":"2026-10-06","updated_at":"2026-10-07 00:14:55"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["net/openvswitch/conntrack.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"4371d79ea74407fb992c985b1f94391e35bb8289","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"},{"lessThan":"7ff688aceada1160331a789385ea146f62fbddf7","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"},{"lessThan":"05eab8dced6bf4d3009a6eeee16ddac99047dc83","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"},{"lessThan":"579d87ec1e1e85729a6cb2c25961e58beb78640c","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"},{"lessThan":"2e6dd889c325abf23821e1459c3ffef59b7f0009","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"},{"lessThan":"d16f089bd700f45d720ce989d5495e1dc3be0cf8","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"},{"lessThan":"8c9fcc6c33950d3db551af664d1fd3d998bfee56","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"},{"lessThan":"3f118c8217c109fd13ca61caa301d72c483897ef","status":"affected","version":"c2ac667358708d7cce64c78f58af6adf4c1e848b","versionType":"git"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["net/openvswitch/conntrack.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"4.3"},{"lessThan":"4.3","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.271","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.222","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.189","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.158","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.112","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.54","versionType":"semver"},{"lessThanOrEqual":"7.2.*","status":"unaffected","version":"7.2.8","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.3","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.271","versionStartIncluding":"4.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.222","versionStartIncluding":"4.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.189","versionStartIncluding":"4.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.158","versionStartIncluding":"4.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.112","versionStartIncluding":"4.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.54","versionStartIncluding":"4.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2.8","versionStartIncluding":"4.3","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.3","versionStartIncluding":"4.3","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nopenvswitch: avoid reallocating confirmed conntrack labels\n\novs_ct_get_conn_labels() adds the labels extension when a conntrack\nentry does not have one.  Confirmed conntracks can be read locklessly,\nso adding an extension may reallocate and free the extension block\nwhile another CPU accesses it.\n\nOnly add the extension for unconfirmed conntracks.  A confirmed\nconntrack without labels now fails the caller's label operation instead\nof reallocating its extension storage."}],"metrics":[{"cvssV3_1":{"baseScore":7.8,"baseSeverity":"HIGH","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","version":"3.1"},"scenarios":[{"lang":"en","value":"AV:L - The bad state is created by local setup over the OVS genetlink datapath/flow commands: a ct(commit,labels) action hits ovs_ct_commit()->ovs_ct_set_labels()->ovs_ct_get_conn_labels() on a confirmed conntrack created before labels_used was raised. Packets only trigger it; the cause is local flow and conntrack ordering.\nAC:L - The attacker creates the unlabelled confirmed conntrack (netfilter traffic before OVS init), installs the label flow, and sends both the triggering packet and the concurrent lockless ct->ext readers on other CPUs, so they control both sides of the krealloc race.\nPR:L - The OVS datapath/flow genl ops use GENL_UNS_ADMIN_PERM, so CAP_NET_ADMIN in a user-owned network namespace (unshare -Urn) is enough; real root is not needed.\nUI:N - No victim action is needed; the attacker sets up the flows and sends all the packets themselves.\nS:U - The corruption is in the kernel's own conntrack extension memory and the impact stays inside the kernel's authority; no VM or hardware boundary is crossed.\nC:H - nf_ct_ext_add() on a confirmed ct does krealloc(ct->ext) and frees the old extension block while other CPUs still dereference it locklessly. That is a slab use-after-free which can be reclaimed with attacker-sprayed data to leak kernel memory.\nI:H - Concurrent writers into the freed nf_ct_ext (labels, acct, ecache, helper data) write into reclaimed memory, a use-after-free write primitive that can be groomed to corrupt kernel objects.\nA:H - The use-after-free on ct->ext can oops the kernel, and WARN_ON(nf_ct_is_confirmed(ct)) in nf_ct_ext_add() panics hosts with panic_on_warn set."}]}],"providerMetadata":{"dateUpdated":"2026-10-19T09:16:22.619Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/4371d79ea74407fb992c985b1f94391e35bb8289"},{"url":"https://git.kernel.org/stable/c/7ff688aceada1160331a789385ea146f62fbddf7"},{"url":"https://git.kernel.org/stable/c/05eab8dced6bf4d3009a6eeee16ddac99047dc83"},{"url":"https://git.kernel.org/stable/c/579d87ec1e1e85729a6cb2c25961e58beb78640c"},{"url":"https://git.kernel.org/stable/c/2e6dd889c325abf23821e1459c3ffef59b7f0009"},{"url":"https://git.kernel.org/stable/c/d16f089bd700f45d720ce989d5495e1dc3be0cf8"},{"url":"https://git.kernel.org/stable/c/8c9fcc6c33950d3db551af664d1fd3d998bfee56"},{"url":"https://git.kernel.org/stable/c/3f118c8217c109fd13ca61caa301d72c483897ef"}],"title":"openvswitch: avoid reallocating confirmed conntrack labels","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-98251","datePublished":"2026-10-06T08:45:18.707Z","dateReserved":"2026-09-25T10:25:14.331Z","dateUpdated":"2026-10-19T09:16:22.619Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-10-06 09:18:13","lastModifiedDate":"2026-10-19 10:18:25","problem_types":[],"metrics":{"cvssMetricV31":[{"source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","cvssData":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH","attackVector":"LOCAL","attackComplexity":"LOW","privilegesRequired":"LOW","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":1.8,"impactScore":5.9}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"98251","Ordinal":"1","Title":"openvswitch: avoid reallocating confirmed conntrack labels","CVE":"CVE-2026-98251","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"98251","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nopenvswitch: avoid reallocating confirmed conntrack labels\n\novs_ct_get_conn_labels() adds the labels extension when a conntrack\nentry does not have one.  Confirmed conntracks can be read locklessly,\nso adding an extension may reallocate and free the extension block\nwhile another CPU accesses it.\n\nOnly add the extension for unconfirmed conntracks.  A confirmed\nconntrack without labels now fails the caller's label operation instead\nof reallocating its extension storage.","Type":"Description","Title":"openvswitch: avoid reallocating confirmed conntrack labels"}]}}}