GCVE Workshop - 22 September 2026 (14:00-18:00), Luxembourg Before The Vulnopticon Conference - Registration

CVE-2026-31678 (GCVE-0-2026-31678)

Vulnerability from cvelistv5 – Published: 2026-04-25 08:46 – Updated: 2026-08-05 12:24
VLAI
Title
openvswitch: defer tunnel netdev_put to RCU release
Summary
In the Linux kernel, the following vulnerability has been resolved: openvswitch: defer tunnel netdev_put to RCU release ovs_netdev_tunnel_destroy() may run after NETDEV_UNREGISTER already detached the device. Dropping the netdev reference in destroy can race with concurrent readers that still observe vport->dev. Do not release vport->dev in ovs_netdev_tunnel_destroy(). Instead, let vport_netdev_free() drop the reference from the RCU callback, matching the non-tunnel destroy path and avoiding additional synchronization under RTNL.
Impacted products
Vendor Product Version CPE status
Linux Linux Affected: a9020fde67a6eb77f8130feff633189f99264db1 , < 9d56aced21fb9c104e8a3f3be9b21fbafe448ffc (git)
Affected: a9020fde67a6eb77f8130feff633189f99264db1 , < 42f0d3d81209654c08ffdde5a34b9b92d2645896 (git)
Affected: a9020fde67a6eb77f8130feff633189f99264db1 , < bbe7bd722bfaea36aab3da6cc60fb4a05c644643 (git)
Affected: a9020fde67a6eb77f8130feff633189f99264db1 , < 98b726ab5e2a4811e27c28e4d041f75bba147eab (git)
Affected: a9020fde67a6eb77f8130feff633189f99264db1 , < b8c56a3fc5d879c0928f207a756b0f067f06c6a8 (git)
Affected: a9020fde67a6eb77f8130feff633189f99264db1 , < 6931d21f87bc6d657f145798fad0bf077b82486c (git)
guessed Create a notification for this product.
Linux Linux Affected: 4.3
Unaffected: 0 , < 4.3 (semver)
Unaffected: 6.1.168 , ≤ 6.1.* (semver)
Unaffected: 6.6.131 , ≤ 6.6.* (semver)
Unaffected: 6.12.80 , ≤ 6.12.* (semver)
Unaffected: 6.18.21 , ≤ 6.18.* (semver)
Unaffected: 6.19.11 , ≤ 6.19.* (semver)
Unaffected: 7.0 , ≤ * (original_commit_for_fix)
guessed Create a notification for this product.
Show details on NVD website

{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/openvswitch/vport-netdev.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "9d56aced21fb9c104e8a3f3be9b21fbafe448ffc",
              "status": "affected",
              "version": "a9020fde67a6eb77f8130feff633189f99264db1",
              "versionType": "git"
            },
            {
              "lessThan": "42f0d3d81209654c08ffdde5a34b9b92d2645896",
              "status": "affected",
              "version": "a9020fde67a6eb77f8130feff633189f99264db1",
              "versionType": "git"
            },
            {
              "lessThan": "bbe7bd722bfaea36aab3da6cc60fb4a05c644643",
              "status": "affected",
              "version": "a9020fde67a6eb77f8130feff633189f99264db1",
              "versionType": "git"
            },
            {
              "lessThan": "98b726ab5e2a4811e27c28e4d041f75bba147eab",
              "status": "affected",
              "version": "a9020fde67a6eb77f8130feff633189f99264db1",
              "versionType": "git"
            },
            {
              "lessThan": "b8c56a3fc5d879c0928f207a756b0f067f06c6a8",
              "status": "affected",
              "version": "a9020fde67a6eb77f8130feff633189f99264db1",
              "versionType": "git"
            },
            {
              "lessThan": "6931d21f87bc6d657f145798fad0bf077b82486c",
              "status": "affected",
              "version": "a9020fde67a6eb77f8130feff633189f99264db1",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/openvswitch/vport-netdev.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": "6.1.*",
              "status": "unaffected",
              "version": "6.1.168",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.131",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.80",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.21",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.19.*",
              "status": "unaffected",
              "version": "6.19.11",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.0",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.168",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.131",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.80",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.21",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19.11",
                  "versionStartIncluding": "4.3",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.0",
                  "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: defer tunnel netdev_put to RCU release\n\novs_netdev_tunnel_destroy() may run after NETDEV_UNREGISTER already\ndetached the device. Dropping the netdev reference in destroy can race\nwith concurrent readers that still observe vport-\u003edev.\n\nDo not release vport-\u003edev in ovs_netdev_tunnel_destroy(). Instead, let\nvport_netdev_free() drop the reference from the RCU callback, matching\nthe non-tunnel destroy path and avoiding additional synchronization\nunder RTNL."
        }
      ],
      "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 vulnerable destroy path is reached through local Generic Netlink/rtnetlink control operations that create or delete Open vSwitch tunnel vports. Remote tunnel packets alone do not invoke `ovs_netdev_tunnel_destroy()`.\nAC:L - This is a race/lifetime bug, but the attacker can control both sides by repeatedly deleting tunnel vports while concurrently driving RCU readers such as vport get/dump, packet execute, or datapath traffic. No rare external condition is required.\nPR:L - Creating and deleting OVS datapaths/vports requires `CAP_NET_ADMIN`, but the OVS Generic Netlink families are netns-aware and use `GENL_UNS_ADMIN_PERM`, making this reachable with CAP_NET_ADMIN in an unprivileged user namespace. This is Low privileges rather than High.\nUI:N - No victim user action is needed once the local attacker can issue the relevant netlink operations. The attacker can trigger creation, deletion, and racing reader activity directly.\nS:U - The vulnerability is a kernel memory lifetime error within the same host kernel security authority. It is a standard local kernel privilege-escalation/DoS class issue, not a VM or hardware boundary escape.\nC:H - The early `netdev_put()` can free the `net_device` while RCU readers still dereference `vport-\u003edev`, creating a use-after-free. Per kernel CVSS guidance, UAFs are scored as High confidentiality impact because they can be developed into kernel memory disclosure primitives.\nI:H - The stale `net_device` pointer can be reused after free by kernel readers/writers and may reach function-pointer-bearing netdev paths. Per guidance, a use-after-free is scored as High integrity impact because heap reuse can enable arbitrary write or code execution.\nA:H - The bug can at minimum crash or oops the kernel through NULL/stale `vport-\u003edev` dereferences and has related observed OVS netdev lifetime splats. A kernel UAF also warrants High availability impact."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-05T12:24:24.631Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/9d56aced21fb9c104e8a3f3be9b21fbafe448ffc"
        },
        {
          "url": "https://git.kernel.org/stable/c/42f0d3d81209654c08ffdde5a34b9b92d2645896"
        },
        {
          "url": "https://git.kernel.org/stable/c/bbe7bd722bfaea36aab3da6cc60fb4a05c644643"
        },
        {
          "url": "https://git.kernel.org/stable/c/98b726ab5e2a4811e27c28e4d041f75bba147eab"
        },
        {
          "url": "https://git.kernel.org/stable/c/b8c56a3fc5d879c0928f207a756b0f067f06c6a8"
        },
        {
          "url": "https://git.kernel.org/stable/c/6931d21f87bc6d657f145798fad0bf077b82486c"
        }
      ],
      "title": "openvswitch: defer tunnel netdev_put to RCU release",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-31678",
    "datePublished": "2026-04-25T08:46:54.476Z",
    "dateReserved": "2026-03-09T15:48:24.130Z",
    "dateUpdated": "2026-08-05T12:24:24.631Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2",
  "vulnerability-lookup:meta": {
    "epss": {
      "cve": "CVE-2026-31678",
      "date": "2026-09-16",
      "epss": "0.00096",
      "percentile": "0.00811"
    },
    "nvd": "{\"cve\":{\"id\":\"CVE-2026-31678\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2026-04-25T09:16:01.437\",\"lastModified\":\"2026-06-17T10:34:13.320\",\"vulnStatus\":\"Analyzed\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nopenvswitch: defer tunnel netdev_put to RCU release\\n\\novs_netdev_tunnel_destroy() may run after NETDEV_UNREGISTER already\\ndetached the device. Dropping the netdev reference in destroy can race\\nwith concurrent readers that still observe vport-\u003edev.\\n\\nDo not release vport-\u003edev in ovs_netdev_tunnel_destroy(). Instead, let\\nvport_netdev_free() drop the reference from the RCU callback, matching\\nthe non-tunnel destroy path and avoiding additional synchronization\\nunder RTNL.\"}],\"affected\":[{\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"affectedData\":[{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"unaffected\",\"programFiles\":[\"net/openvswitch/vport-netdev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"a9020fde67a6eb77f8130feff633189f99264db1\",\"lessThan\":\"9d56aced21fb9c104e8a3f3be9b21fbafe448ffc\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a9020fde67a6eb77f8130feff633189f99264db1\",\"lessThan\":\"42f0d3d81209654c08ffdde5a34b9b92d2645896\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a9020fde67a6eb77f8130feff633189f99264db1\",\"lessThan\":\"bbe7bd722bfaea36aab3da6cc60fb4a05c644643\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a9020fde67a6eb77f8130feff633189f99264db1\",\"lessThan\":\"98b726ab5e2a4811e27c28e4d041f75bba147eab\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a9020fde67a6eb77f8130feff633189f99264db1\",\"lessThan\":\"b8c56a3fc5d879c0928f207a756b0f067f06c6a8\",\"versionType\":\"git\",\"status\":\"affected\"},{\"version\":\"a9020fde67a6eb77f8130feff633189f99264db1\",\"lessThan\":\"6931d21f87bc6d657f145798fad0bf077b82486c\",\"versionType\":\"git\",\"status\":\"affected\"}]},{\"vendor\":\"Linux\",\"product\":\"Linux\",\"defaultStatus\":\"affected\",\"programFiles\":[\"net/openvswitch/vport-netdev.c\"],\"repo\":\"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git\",\"versions\":[{\"version\":\"4.3\",\"status\":\"affected\"},{\"version\":\"0\",\"lessThan\":\"4.3\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.1.168\",\"lessThanOrEqual\":\"6.1.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.6.131\",\"lessThanOrEqual\":\"6.6.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.12.80\",\"lessThanOrEqual\":\"6.12.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.18.21\",\"lessThanOrEqual\":\"6.18.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"6.19.11\",\"lessThanOrEqual\":\"6.19.*\",\"versionType\":\"semver\",\"status\":\"unaffected\"},{\"version\":\"7.0\",\"lessThanOrEqual\":\"*\",\"versionType\":\"original_commit_for_fix\",\"status\":\"unaffected\"}]}]}],\"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}]},\"weaknesses\":[{\"source\":\"nvd@nist.gov\",\"type\":\"Primary\",\"description\":[{\"lang\":\"en\",\"value\":\"CWE-367\"}]}],\"configurations\":[{\"nodes\":[{\"operator\":\"OR\",\"negate\":false,\"cpeMatch\":[{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"4.3\",\"versionEndExcluding\":\"6.1.168\",\"matchCriteriaId\":\"4EB455B5-6DF4-474E-9AFE-9C1854DD0CDC\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.2\",\"versionEndExcluding\":\"6.6.131\",\"matchCriteriaId\":\"CE6ED4D4-0046-4573-BFA9-D64143B6A89F\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.7\",\"versionEndExcluding\":\"6.12.80\",\"matchCriteriaId\":\"97EB19EC-A11E-49C6-9D2F-6F6EC6CB98B6\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.13\",\"versionEndExcluding\":\"6.18.21\",\"matchCriteriaId\":\"ED39847A-3B46-4729-B7CA-B2C30B9FA8FE\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*\",\"versionStartIncluding\":\"6.19\",\"versionEndExcluding\":\"6.19.11\",\"matchCriteriaId\":\"4CA2E747-A9EC-4518-9AA2-B4247FC748B7\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc1:*:*:*:*:*:*\",\"matchCriteriaId\":\"F253B622-8837-4245-BCE5-A7BF8FC76A16\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc2:*:*:*:*:*:*\",\"matchCriteriaId\":\"4AE85AD8-4641-4E7C-A2F4-305E2CD9EE64\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc3:*:*:*:*:*:*\",\"matchCriteriaId\":\"F666C8D8-6538-46D4-B318-87610DE64C34\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc4:*:*:*:*:*:*\",\"matchCriteriaId\":\"02259FDA-961B-47BC-AE7F-93D7EC6E90C2\"},{\"vulnerable\":true,\"criteria\":\"cpe:2.3:o:linux:linux_kernel:7.0:rc5:*:*:*:*:*:*\",\"matchCriteriaId\":\"58A9FEFF-C040-420D-8F0A-BFDAAA1DF258\"}]}]}],\"references\":[{\"url\":\"https://git.kernel.org/stable/c/42f0d3d81209654c08ffdde5a34b9b92d2645896\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/6931d21f87bc6d657f145798fad0bf077b82486c\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/98b726ab5e2a4811e27c28e4d041f75bba147eab\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/9d56aced21fb9c104e8a3f3be9b21fbafe448ffc\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/b8c56a3fc5d879c0928f207a756b0f067f06c6a8\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]},{\"url\":\"https://git.kernel.org/stable/c/bbe7bd722bfaea36aab3da6cc60fb4a05c644643\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"tags\":[\"Patch\"]}]}}",
    "redhat_vex": {
      "aggregate_severity": "Important",
      "current_release_date": "2026-09-03T12:21:09+00:00",
      "cve": "CVE-2026-31678",
      "id": "CVE-2026-31678",
      "initial_release_date": "2026-04-25T00:00:00+00:00",
      "product_status:known_affected": "260",
      "product_status:known_not_affected": "14",
      "source": "Red Hat CSAF VEX",
      "status": "final",
      "title": "kernel: openvswitch: defer tunnel netdev_put to RCU release",
      "url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-31678.json",
      "version": "3"
    },
    "suse_vex": {
      "aggregate_severity": "important",
      "current_release_date": "2026-09-16T00:15:02Z",
      "cve": "CVE-2026-31678",
      "id": "CVE-2026-31678",
      "initial_release_date": "2026-04-26T01:52:42Z",
      "product_status:first_fixed": "2",
      "product_status:known_affected": "644",
      "product_status:known_not_affected": "4",
      "product_status:recommended": "316",
      "source": "SUSE CSAF VEX",
      "status": "interim",
      "title": "SUSE CVE CVE-2026-31678",
      "url": "https://ftp.suse.com/pub/projects/security/csaf-vex/cve-2026-31678.json",
      "version": "31"
    }
  }
}



Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Forecast uses a logistic model when the trend is rising, or an exponential decay model when the trend is falling. Fitted via linearized least squares.

Sightings

Author Source Type Date Other

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or observed by the user.
  • Confirmed: The vulnerability has been validated from an analyst's perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: The vulnerability was observed as exploited by the user who reported the sighting.
  • Patched: The vulnerability was observed as successfully patched by the user who reported the sighting.
  • Not exploited: The vulnerability was not observed as exploited by the user who reported the sighting.
  • Not confirmed: The user expressed doubt about the validity of the vulnerability.
  • Not patched: The vulnerability was not observed as successfully patched by the user who reported the sighting.

Loading…

Detection rules are retrieved from Rulezet.

Loading…

Loading…

Related by attack behaviour

Vulnerabilities whose description is nearest to this one in the vector space of the CIRCL/vulnerability-attack-technique-biencoder model. This is a similarity search over the bi-encoder space (plain cosine), not a classification, and it has no measured accuracy.


Loading…