« Back to list

CVE-2026-97615

Status: ReceivedUnscored—

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.

Read full descriptionShow less

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.

CVSS

NVD hasn't assigned a CVSS score to this CVE (common since the April 2026 policy change).

Exploitation probability (EPSS)

EPSS (Exploit Prediction Scoring System, FIRST) estimates how likely a vulnerability is to be exploited in the wild within 30 days. It complements CVSS (impact) and CISA KEV (confirmed exploitation).

Affected technologies (1)

⚠ AI-inferred from the description — NVD hasn't analyzed this CVE yet, these aren't verified CPEs.

References

Raw JSON (NVD)

Show
{
  "id": "CVE-2026-97615",
  "cveTags": [],
  "metrics": {},
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "lessThan": "be5ead6552418d70df3a76b962ccd6ed78a31fb5",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "lessThan": "994fd705ca498223d188024cde833739a9dddbd2",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "lessThan": "42e033c8f30fd2923ccac3373ae70797e521dae1",
              "versionType": "git"
            },
            {
              "status": "affected",
              "version": "90c628dd47ff4178f645b34938470bf43d02d123",
              "lessThan": "7a49e6b16f36b8e085521699adbca3e321b6dd0c",
              "versionType": "git"
            }
          ],
          "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"
          ],
          "defaultStatus": "unaffected"
        },
        {
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "product": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "5.11"
            },
            {
              "status": "unaffected",
              "version": "0",
              "lessThan": "5.11",
              "versionType": "semver"
            },
            {
              "status": "unaffected",
              "version": "6.12.112",
              "versionType": "semver",
              "lessThanOrEqual": "6.12.*"
            },
            {
              "status": "unaffected",
              "version": "6.18.53",
              "versionType": "semver",
              "lessThanOrEqual": "6.18.*"
            },
            {
              "status": "unaffected",
              "version": "7.2.7",
              "versionType": "semver",
              "lessThanOrEqual": "7.2.*"
            },
            {
              "status": "unaffected",
              "version": "7.3-rc3",
              "versionType": "original_commit_for_fix",
              "lessThanOrEqual": "*"
            }
          ],
          "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"
          ],
          "defaultStatus": "affected"
        }
      ]
    }
  ],
  "published": "2026-09-25T11:17:15.670",
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/42e033c8f30fd2923ccac3373ae70797e521dae1",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/7a49e6b16f36b8e085521699adbca3e321b6dd0c",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/994fd705ca498223d188024cde833739a9dddbd2",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/be5ead6552418d70df3a76b962ccd6ed78a31fb5",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ],
  "vulnStatus": "Received",
  "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."
    }
  ],
  "lastModified": "2026-10-03T11:18:07.920",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}