CVE-2026-97615 (GCVE-0-2026-97615)
Vulnerability from cvelistv5
Published
2026-09-25 10:22
Modified
2026-10-21 12:53
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: net: bridge: use option bits for CFM/MRP frame handlers CFM and MRP register a global br_frame_type whose hlist_node is linked into the per-bridge frame_type_list when the first MEP/MRP instance is created. Enabling the protocol on multiple bridges therefore inserts the same node into multiple lists. Unregistering it on one bridge then corrupts list state belonging to another. These handlers can only be installed once per bridge, and they are uncommon. Track their per-bridge enable state with net_bridge option bits, which already live on the Rx hot cache line, and dispatch the matching handler directly from the receive path. Check both bits together first as an unlikely case. Remove the generic frame_type_list and br_frame_type helpers, which have had no other users since CFM and MRP were added. That shrinks struct net_bridge by 8 bytes and drops the list walk from the fast path. When neither protocol is compiled in, BR_CFM_MRP_OPTS is 0 and the compiler prunes the branch.
Impacted products
Vendor Product Version
Linux Linux Version: 90c628dd47ff4178f645b34938470bf43d02d123
Version: 90c628dd47ff4178f645b34938470bf43d02d123
Version: 90c628dd47ff4178f645b34938470bf43d02d123
Version: 90c628dd47ff4178f645b34938470bf43d02d123
Version: 90c628dd47ff4178f645b34938470bf43d02d123
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/br_cfm.c",
            "net/bridge/br_device.c",
            "net/bridge/br_input.c",
            "net/bridge/br_mrp.c",
            "net/bridge/br_private.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "260f99b355a44f6ce67971ebc9223b22c8f93957",
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "versionType": "git"
            },
            {
              "lessThan": "be5ead6552418d70df3a76b962ccd6ed78a31fb5",
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "versionType": "git"
            },
            {
              "lessThan": "994fd705ca498223d188024cde833739a9dddbd2",
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "versionType": "git"
            },
            {
              "lessThan": "42e033c8f30fd2923ccac3373ae70797e521dae1",
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "versionType": "git"
            },
            {
              "lessThan": "7a49e6b16f36b8e085521699adbca3e321b6dd0c",
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "net/bridge/br_cfm.c",
            "net/bridge/br_device.c",
            "net/bridge/br_input.c",
            "net/bridge/br_mrp.c",
            "net/bridge/br_private.h"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.11"
            },
            {
              "lessThan": "5.11",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.160",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.7",
              "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": "6.6.160",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.112",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.53",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.7",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "5.11",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: bridge: use option bits for CFM/MRP frame handlers\n\nCFM and MRP register a global br_frame_type whose hlist_node is linked\ninto the per-bridge frame_type_list when the first MEP/MRP instance is\ncreated. Enabling the protocol on multiple bridges therefore inserts the\nsame node into multiple lists. Unregistering it on one bridge then\ncorrupts list state belonging to another.\n\nThese handlers can only be installed once per bridge, and they are\nuncommon. Track their per-bridge enable state with net_bridge option\nbits, which already live on the Rx hot cache line, and dispatch the\nmatching handler directly from the receive path. Check both bits\ntogether first as an unlikely case.\n\nRemove the generic frame_type_list and br_frame_type helpers, which\nhave had no other users since CFM and MRP were added. That shrinks\nstruct net_bridge by 8 bytes and drops the list walk from the fast\npath. When neither protocol is compiled in, BR_CFM_MRP_OPTS is 0 and\nthe compiler prunes the branch."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-21T12:53:27.949Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/260f99b355a44f6ce67971ebc9223b22c8f93957"
        },
        {
          "url": "https://git.kernel.org/stable/c/be5ead6552418d70df3a76b962ccd6ed78a31fb5"
        },
        {
          "url": "https://git.kernel.org/stable/c/994fd705ca498223d188024cde833739a9dddbd2"
        },
        {
          "url": "https://git.kernel.org/stable/c/42e033c8f30fd2923ccac3373ae70797e521dae1"
        },
        {
          "url": "https://git.kernel.org/stable/c/7a49e6b16f36b8e085521699adbca3e321b6dd0c"
        }
      ],
      "title": "net: bridge: use option bits for CFM/MRP frame handlers",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-97615",
    "datePublished": "2026-09-25T10:22:23.234Z",
    "dateReserved": "2026-09-24T16:01:01.159Z",
    "dateUpdated": "2026-10-21T12:53:27.949Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…