{
  "affected": [
    {
      "ranges": [
        {
          "events": [
            {
              "introduced": "eac87c413bf9794c14d488998a5265ea5b32f04e"
            },
            {
              "fixed": "cd982e11684def5d4a9fcfd5354de09032828414"
            },
            {
              "fixed": "a0d18d21d48a551f82ee344e50efb8a682161489"
            },
            {
              "fixed": "035e9c3722067648a99010711d0ce81f42572ef4"
            },
            {
              "fixed": "ba4ba11ed6eb8972c69070417fc27b48deb002e8"
            }
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "type": "GIT"
        }
      ]
    },
    {
      "package": {
        "ecosystem": "Linux",
        "name": "Kernel"
      },
      "ranges": [
        {
          "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"
            }
          ],
          "type": "ECOSYSTEM"
        }
      ]
    }
  ],
  "database_specific": {
    "cna_assigner": "Linux",
    "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/97xxx/CVE-2026-97611.json"
  },
  "details": "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-\u003emask_array);\n\tif (old) {\n\t\t...\n\t\tcall_rcu(\u0026old-\u003ercu, mask_array_rcu_cb);\n\t}\n\n\trcu_assign_pointer(tbl-\u003emask_array, new);\n\ncall_rcu() only waits for read-side critical sections already in flight.\ntbl-\u003emask_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.",
  "id": "CVE-2026-97611",
  "modified": "2026-09-27T03:30:48.435452759Z",
  "published": "2026-09-25T10:22:20.827Z",
  "references": [
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/035e9c3722067648a99010711d0ce81f42572ef4"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/a0d18d21d48a551f82ee344e50efb8a682161489"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/ba4ba11ed6eb8972c69070417fc27b48deb002e8"
    },
    {
      "type": "WEB",
      "url": "https://git.kernel.org/stable/c/cd982e11684def5d4a9fcfd5354de09032828414"
    },
    {
      "type": "ADVISORY",
      "url": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/97xxx/CVE-2026-97611.json"
    },
    {
      "type": "ADVISORY",
      "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-97611"
    },
    {
      "type": "PACKAGE",
      "url": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
    }
  ],
  "schema_version": "1.9.0",
  "severity": [
    {
      "score": "CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H",
      "type": "CVSS_V3"
    }
  ],
  "summary": "net: openvswitch: fix use-after-free of the flow table mask array"
}