Skip to content
Heist/ feed
Back to feed
UnratedFix available

net: openvswitch: reallocate update replies for mismatched IDs

Type: advisorySources: OSV

In the Linux kernel, the following vulnerability has been resolved: net: openvswitch: reallocate update replies for mismatched IDs ovs_flow_cmd_new() preallocates the optional reply skb before it takes ovs_mutex and before it knows which existing flow will be updated. That is normally fine because the skb is sized from the request flow identifier. That identifier also becomes the inserted flow's identifier. For updates, however, a request with a UFID may miss the UFID lookup and then fall back to the flow key lookup. That lookup can legitimately find an existing key-identified flow. UFIDs are optional and the flow key is the primary identifier. For echoed replies, ovs_flow_cmd_fill_info() writes the matched flow's identifier, not the request identifier used for the preallocation. A short request UFID can therefore leave too little room for the key identifier. The fill can then fail with -EMSGSIZE and hit the BUG_ON(error < 0) in the update path. Once the update target has been resolved, reallocate the reply skb if the matched flow needs a larger reply than the request identifier allowed. Do this before replacing the actions so the request can still fail cleanly if the rare extra allocation fails.

Products
Kernel
Affected versions
Not specified
Fixed versions
5.10.265, 5.15.216, 6.1.183, 6.12.104, 6.18.45, 6.6.152, 7.1.9
CVEs
CVE-2026-74664
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 05:16 UTC · Revision 1

Source evidence

net: openvswitch: reallocate update replies for mismatched IDs

core-osv · Original source

Published 22 Aug 2026, 15:32 UTC

In the Linux kernel, the following vulnerability has been resolved: net: openvswitch: reallocate update replies for mismatched IDs ovs_flow_cmd_new() preallocates the optional reply skb before it takes ovs_mutex and before it knows which existing flow will be updated. That is normally fine because the skb is sized from the request flow identifier. That identifier also becomes the inserted flow's identifier. For updates, however, a request with a UFID may miss the UFID lookup and then fall back to the flow key lookup. That lookup can legitimately find an existing key-identified flow. UFIDs are optional and the flow key is the primary identifier. For echoed replies, ovs_flow_cmd_fill_info() writes the matched flow's identifier, not the request identifier used for the preallocation. A short request UFID can therefore leave too little room for the key identifier. The fill can then fail with -EMSGSIZE and hit the BUG_ON(error < 0) in the update path. Once the update target has been resolved, reallocate the reply skb if the matched flow needs a larger reply than the request identifier allowed. Do this before replacing the actions so the request can still fail cleanly if the rare extra allocation fails.

osv:CVE-2026-74664

Kernel

Fixed versions: 5.10.265, 5.15.216, 6.1.183, 6.6.152, 6.12.104, 6.18.45, 7.1.9

Complete source record
{
  "id": "062f9b91bc7ce966d126da5c6fedaf2f8cc5c8421648a3f114891697e7b220ac",
  "url": "https://osv.dev/vulnerability/CVE-2026-74664",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "net: openvswitch: reallocate update replies for mismatched IDs",
    "summary": "In the Linux kernel, the following vulnerability has been resolved: net: openvswitch: reallocate update replies for mismatched IDs ovs_flow_cmd_new() preallocates the optional reply skb before it takes ovs_mutex and before it knows which existing flow will be updated. That is normally fine because the skb is sized from the request flow identifier. That identifier also becomes the inserted flow's identifier. For updates, however, a request with a UFID may miss the UFID lookup and then fall back to the flow key lookup. That lookup can legitimately find an existing key-identified flow. UFIDs are optional and the flow key is the primary identifier. For echoed replies, ovs_flow_cmd_fill_info() writes the matched flow's identifier, not the request identifier used for the preallocation. A short request UFID can therefore leave too little room for the key identifier. The fill can then fail with -EMSGSIZE and hit the BUG_ON(error < 0) in the update path. Once the update target has been resolved, reallocate the reply skb if the matched flow needs a larger reply than the request identifier allowed. Do this before replacing the actions so the request can still fail cleanly if the rare extra allocation fails.",
    "evidence": "osv:CVE-2026-74664",
    "products": [
      {
        "name": {
          "value": "Kernel",
          "evidence": "/affected/1/package/name"
        },
        "prerequisites": [],
        "fixed_versions": [
          {
            "value": "5.10.265",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "5.15.216",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.1.183",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.6.152",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.12.104",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "6.18.45",
            "evidence": "/affected/1/ranges"
          },
          {
            "value": "7.1.9",
            "evidence": "/affected/1/ranges"
          }
        ],
        "affected_versions": []
      }
    ],
    "severity": "unknown",
    "structured": {
      "id": "CVE-2026-74664",
      "aliases": [
        "CVE-2026-74664"
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
              "type": "GIT",
              "events": [
                {
                  "introduced": "74ed7ab9264c54471c7f057409d352052820d750"
                },
                {
                  "fixed": "bd8ca84d48cd9a4f6fc63df26512c55e1d339927"
                },
                {
                  "fixed": "00f987f066e802793a37dd2167459e67cf2cf2ec"
                },
                {
                  "fixed": "696a0b9435fce9cf4f1e9ba7f6afa6bee96c97fc"
                },
                {
                  "fixed": "87d0c0040b5d4b61de51ae39132c4c46709f2f77"
                },
                {
                  "fixed": "69f40ccf85074981340847d650a9cbf9adabfbbe"
                },
                {
                  "fixed": "23716dd9d8d46a5908536b73dc085e62f2b5c237"
                },
                {
                  "fixed": "20751193d83be2e9735d4faee71375691c09cd13"
                },
                {
                  "fixed": "5d1c224dd914579524a183a514c12b95095d12ce"
                }
              ]
            }
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74664.json"
          }
        },
        {
          "ranges": [
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "4.0.0"
                },
                {
                  "fixed": "5.10.265"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.11.0"
                },
                {
                  "fixed": "5.15.216"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "5.16.0"
                },
                {
                  "fixed": "6.1.183"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.2.0"
                },
                {
                  "fixed": "6.6.152"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.7.0"
                },
                {
                  "fixed": "6.12.104"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.13.0"
                },
                {
                  "fixed": "6.18.45"
                }
              ]
            },
            {
              "type": "ECOSYSTEM",
              "events": [
                {
                  "introduced": "6.19.0"
                },
                {
                  "fixed": "7.1.9"
                }
              ]
            }
          ],
          "package": {
            "name": "Kernel",
            "ecosystem": "Linux"
          },
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-74664.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:26.469909725Z",
      "provider": "osv",
      "references": [
        "https://git.kernel.org/stable/c/00f987f066e802793a37dd2167459e67cf2cf2ec",
        "https://git.kernel.org/stable/c/20751193d83be2e9735d4faee71375691c09cd13",
        "https://git.kernel.org/stable/c/23716dd9d8d46a5908536b73dc085e62f2b5c237",
        "https://git.kernel.org/stable/c/5d1c224dd914579524a183a514c12b95095d12ce",
        "https://git.kernel.org/stable/c/696a0b9435fce9cf4f1e9ba7f6afa6bee96c97fc",
        "https://git.kernel.org/stable/c/69f40ccf85074981340847d650a9cbf9adabfbbe",
        "https://git.kernel.org/stable/c/87d0c0040b5d4b61de51ae39132c4c46709f2f77",
        "https://git.kernel.org/stable/c/bd8ca84d48cd9a4f6fc63df26512c55e1d339927",
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74664.json",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-74664",
        "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git"
      ],
      "provider_metadata": {
        "cna_assigner": "Linux",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/74xxx/CVE-2026-74664.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-74664",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": null
  },
  "source_id": "core-osv",
  "document_id": 492675,
  "published_at": "2026-08-22T15:32:36.616+00:00"
}