← Back to CVE Explorer

CVE-2026-98908

Full vulnerability record from the local CVENow database.

Description

In the Linux kernel, the following vulnerability has been resolved: net: microchip: sparx5: clean up PSFP resources on flower setup failure sparx5_tc_flower_psfp_setup() allocates PSFP stream gate, flow meter and stream filter resources before adding VCAP actions. If a later step fails, the resources allocated earlier in the function are not unwound. Add error paths to release the stream filter, flow meter and stream gate when setup fails after they have been acquired. Also make sparx5_psfp_fm_add() return the acquired flow-meter id before the existing-flow-meter early return. When an existing flow meter is reused, sparx5_psfp_fm_get() increments its pool reference count, but the caller previously kept psfp_fmid as 0. If a later setup step failed, the error path could try to delete flow-meter id 0 instead of the reused flow meter, leaving the incremented reference behind.

Severity
Not scored
CVSS score
Not available
Vulnerability status
Received
Source identifier
416baaa9-dc9f-4396-8d5f-8c081fb06d67
Published
2026-10-23 12:18:24.907000
Last modified
2026-10-26 07:17:16.150000
View original CVE JSON
{
  "id": "CVE-2026-98908",
  "sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
  "published": "2026-10-23T12:18:24.907",
  "lastModified": "2026-10-26T07:17:16.150",
  "vulnStatus": "Received",
  "cveTags": [],
  "descriptions": [
    {
      "lang": "en",
      "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nnet: microchip: sparx5: clean up PSFP resources on flower setup failure\n\nsparx5_tc_flower_psfp_setup() allocates PSFP stream gate, flow meter and\nstream filter resources before adding VCAP actions. If a later step\nfails, the resources allocated earlier in the function are not unwound.\n\nAdd error paths to release the stream filter, flow meter and stream gate\nwhen setup fails after they have been acquired.\n\nAlso make sparx5_psfp_fm_add() return the acquired flow-meter id before\nthe existing-flow-meter early return. When an existing flow meter is\nreused, sparx5_psfp_fm_get() increments its pool reference count, but the\ncaller previously kept psfp_fmid as 0. If a later setup step failed, the\nerror path could try to delete flow-meter id 0 instead of the reused flow\nmeter, leaving the incremented reference behind."
    }
  ],
  "affected": [
    {
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
      "affectedData": [
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "unaffected",
          "programFiles": [
            "drivers/net/ethernet/microchip/sparx5/sparx5_psfp.c",
            "drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6ebf182bfdf15bd58ebcf6760b06458694e0fad2",
              "lessThan": "a7625d408f7f0535c2b0f05d53231d6496acd48b",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6ebf182bfdf15bd58ebcf6760b06458694e0fad2",
              "lessThan": "a46ea3f7ee0d3ad3d5e92043232b293be2a305d3",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6ebf182bfdf15bd58ebcf6760b06458694e0fad2",
              "lessThan": "640c1bd8d359ad34817f5afec0872985e87b49ec",
              "versionType": "git",
              "status": "affected"
            },
            {
              "version": "6ebf182bfdf15bd58ebcf6760b06458694e0fad2",
              "lessThan": "46e50367338702abe3df661df7795bdada40fef7",
              "versionType": "git",
              "status": "affected"
            }
          ]
        },
        {
          "vendor": "Linux",
          "product": "Linux",
          "defaultStatus": "affected",
          "programFiles": [
            "drivers/net/ethernet/microchip/sparx5/sparx5_psfp.c",
            "drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "versions": [
            {
              "version": "6.3",
              "status": "affected"
            },
            {
              "version": "0",
              "lessThan": "6.3",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.6.158",
              "lessThanOrEqual": "6.6.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.12.111",
              "lessThanOrEqual": "6.12.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "6.18.53",
              "lessThanOrEqual": "6.18.*",
              "versionType": "semver",
              "status": "unaffected"
            },
            {
              "version": "7.2",
              "lessThanOrEqual": "*",
              "versionType": "original_commit_for_fix",
              "status": "unaffected"
            }
          ]
        }
      ]
    }
  ],
  "metrics": {},
  "references": [
    {
      "url": "https://git.kernel.org/stable/c/46e50367338702abe3df661df7795bdada40fef7",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/640c1bd8d359ad34817f5afec0872985e87b49ec",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/a46ea3f7ee0d3ad3d5e92043232b293be2a305d3",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    },
    {
      "url": "https://git.kernel.org/stable/c/a7625d408f7f0535c2b0f05d53231d6496acd48b",
      "source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
    }
  ]
}