net: microchip: sparx5: clean up PSFP resources on flower setup failure
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.
- Products
- Linux
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2026-98908
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 29 Oct 2026, 18:04 UTC · Revision 2
Source evidence
net: microchip: sparx5: clean up PSFP resources on flower setup failure
core-cve · Original sourcePublished 23 Oct 2026, 11:54 UTC
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.
cve:CVE-2026-98908
Linux
Fixed versions: Not specified
Linux
Fixed versions: Not specified
Complete source record
{
"id": "b6c6b5f29eaae7b80bcac57c83f08f903dec74a6d8c847d9b6f7e6a9003cbf6e",
"url": "https://www.cve.org/CVERecord?id=CVE-2026-98908",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "net: microchip: sparx5: clean up PSFP resources on flower setup failure",
"summary": "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.",
"evidence": "cve:CVE-2026-98908",
"products": [
{
"name": {
"value": "Linux",
"evidence": "/containers/cna/affected/0/product"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": []
},
{
"name": {
"value": "Linux",
"evidence": "/containers/cna/affected/1/product"
},
"prerequisites": [],
"fixed_versions": [],
"affected_versions": []
}
],
"severity": "unknown",
"structured": {
"id": "CVE-2026-98908",
"aliases": [
"CVE-2026-98908"
],
"metrics": [],
"affected": [
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"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"
}
],
"programFiles": [
"drivers/net/ethernet/microchip/sparx5/sparx5_psfp.c",
"drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c"
],
"defaultStatus": "unaffected"
},
{
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"product": "Linux",
"versions": [
{
"status": "affected",
"version": "6.3"
},
{
"status": "unaffected",
"version": "0",
"lessThan": "6.3",
"versionType": "semver"
},
{
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver",
"lessThanOrEqual": "6.6.*"
},
{
"status": "unaffected",
"version": "6.12.111",
"versionType": "semver",
"lessThanOrEqual": "6.12.*"
},
{
"status": "unaffected",
"version": "6.18.53",
"versionType": "semver",
"lessThanOrEqual": "6.18.*"
},
{
"status": "unaffected",
"version": "7.2",
"versionType": "original_commit_for_fix",
"lessThanOrEqual": "*"
}
],
"programFiles": [
"drivers/net/ethernet/microchip/sparx5/sparx5_psfp.c",
"drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c"
],
"defaultStatus": "affected"
}
],
"modified": "2026-10-26T06:56:37.786Z",
"provider": "cve",
"references": [
"https://git.kernel.org/stable/c/a7625d408f7f0535c2b0f05d53231d6496acd48b",
"https://git.kernel.org/stable/c/a46ea3f7ee0d3ad3d5e92043232b293be2a305d3",
"https://git.kernel.org/stable/c/640c1bd8d359ad34817f5afec0872985e87b49ec",
"https://git.kernel.org/stable/c/46e50367338702abe3df661df7795bdada40fef7"
],
"provider_metadata": {
"cna": {
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux",
"dateUpdated": "2026-10-26T06:56:37.786Z"
}
}
},
"related_cves": [
{
"value": "CVE-2026-98908",
"evidence": "/cveMetadata/cveId"
}
],
"security_relevant": true,
"severity_evidence": null
},
"source_id": "core-cve",
"document_id": 263366,
"published_at": "2026-10-23T11:54:46.243+00:00"
}