CVE-2026-97573 (GCVE-0-2026-97573)
Vulnerability from cvelistv5 – Published: 2026-09-25 10:21 – Updated: 2026-10-19 09:09| Vendor | Product | Version | CPE status | |
|---|---|---|---|---|
| Linux | Linux |
Affected:
8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < 52fc97cbc3ba118aad84e7c001bf02ebe8496f70
(git)
Affected: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < 40b4a7bb6b0b872b45f017dbf211268de098b75c (git) Affected: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < af9a2bdaba0b4ceb0fc5e5122ef3fc6b7e5a366a (git) Affected: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < cfec9e7f15a56cb0104bac13d01e5d11e1ba84fb (git) Affected: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < 1a3670b6a6b5679fe56c5890157b344f091e64f8 (git) Affected: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < 4a17c73c83798c2fa9c7920ad5a98803adce3e01 (git) Affected: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < 8b2fd5c0aeda935294159206af9d6179282d425a (git) Affected: 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 , < 961e2a17c5e3559b3f8654d2daabdd25a42e770a (git) |
guessed | |
| Linux | Linux |
Affected:
5.10
Unaffected: 0 , < 5.10 (semver) Unaffected: 5.10.271 , ≤ 5.10.* (semver) Unaffected: 5.15.222 , ≤ 5.15.* (semver) Unaffected: 6.1.189 , ≤ 6.1.* (semver) Unaffected: 6.6.158 , ≤ 6.6.* (semver) Unaffected: 6.12.111 , ≤ 6.12.* (semver) Unaffected: 6.18.53 , ≤ 6.18.* (semver) Unaffected: 7.2.7 , ≤ 7.2.* (semver) Unaffected: 7.3 , ≤ * (original_commit_for_fix) |
guessed |
{
"containers": {
"cna": {
"affected": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "52fc97cbc3ba118aad84e7c001bf02ebe8496f70",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "40b4a7bb6b0b872b45f017dbf211268de098b75c",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "af9a2bdaba0b4ceb0fc5e5122ef3fc6b7e5a366a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "cfec9e7f15a56cb0104bac13d01e5d11e1ba84fb",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "1a3670b6a6b5679fe56c5890157b344f091e64f8",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "4a17c73c83798c2fa9c7920ad5a98803adce3e01",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "8b2fd5c0aeda935294159206af9d6179282d425a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "961e2a17c5e3559b3f8654d2daabdd25a42e770a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"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": "5.10.271",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "5.15.222",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.1.189",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.6.158",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.12.111",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "6.18.53",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.2.7",
"versionStartIncluding": "5.10",
"vulnerable": true
},
{
"criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
"versionEndExcluding": "7.3",
"versionStartIncluding": "5.10",
"vulnerable": true
}
],
"negate": false,
"operator": "OR"
}
]
}
],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()\n\nbnxt_rx_ring_reset() frees the ring buffers and then reallocates them,\nignoring the result.\n\nbnxt_alloc_one_rx_ring() can fail in bnxt_alloc_one_tpa_info_data(), which\nreturns -ENOMEM on the first failed allocation and leaves the remaining\nrxr-\u003erx_tpa[] entries zeroed.\n\nThe error isn\u0027t propagated up, so the loop in bnxt_rx_ring_reset\ncontinues and at the end the code re-enables TPA with partially\nunallocated rx_tpa array.\n\nThis means that when the agg_id from hardware is mapped to a SW index in\nrxr-\u003erx_tpa[], an uninitialized slot can be chosen which would hand a\nzero DMA address to the device.\n\nFix this by falling back to a global reset, which is what the existing\ncode already does when other functions fail, but unlike the other\nfailure cases this particular failure has to return because TPA can\u0027t\nbe re-enabled since the allocation failed."
}
],
"metrics": [
{
"cvssV3_1": {
"baseScore": 8.1,
"baseSeverity": "HIGH",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"scenarios": [
{
"lang": "en",
"value": "AV:N - The fixed function bnxt_rx_ring_reset() is a driver error path with no malformed input. What it damages is received data: bnxt_tpa_start() hands the NIC a stale rx_tpa[] mapping, and the NIC DMAs packet bytes sent by a remote host into that freed buffer. The remote peer supplies the data that gets written, so the vector is Network.\nAC:H - Two things must happen together. A pre-P5 chip must hit an RX buffer error, cons mismatch or ring-monitor event that schedules the per-ring reset, and the GFP_KERNEL refill in bnxt_alloc_one_tpa_info_data() must fail under memory pressure. A remote sender cannot force that allocation failure.\nPR:N - No authentication is involved. Any host that can send TCP traffic that the NIC aggregates with TPA (hardware GRO/LRO) fills the stale buffers and can also generate the traffic that leads to RX buffer errors.\nUI:N - No user action is needed. The reset runs from the bnxt sp_task workqueue, and the bad TPA slot is used as soon as TPA_START completions arrive.\nS:U - The corruption hits kernel memory on the host that owns the NIC, which is the same authority as the driver. No VM or other security boundary is crossed.\nC:H - bnxt_free_one_tpa_info_data() clears tpa_info-\u003edata but leaves tpa_info-\u003emapping stale. The NIC then writes into a page returned to page_pool that can be reused, and a reused buffer carrying other data can end up delivered as the next RX packet.\nI:H - The device DMA-writes TCP payload bytes chosen by the remote sender into freed memory (bnxt_tpa_start() puts the stale mapping into rx_bd_haddr). That is a write into memory the kernel may have reused, with attacker-chosen contents.\nA:H - The NULL tpa_info-\u003edata is moved into rx_buf_ring by bnxt_tpa_start(). When that buffer is consumed, the RX path dereferences NULL, and on top of that the stray DMA corrupts memory, so the kernel crashes."
}
]
}
],
"providerMetadata": {
"dateUpdated": "2026-10-19T09:09:35.902Z",
"orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"shortName": "Linux"
},
"references": [
{
"url": "https://git.kernel.org/stable/c/52fc97cbc3ba118aad84e7c001bf02ebe8496f70"
},
{
"url": "https://git.kernel.org/stable/c/40b4a7bb6b0b872b45f017dbf211268de098b75c"
},
{
"url": "https://git.kernel.org/stable/c/af9a2bdaba0b4ceb0fc5e5122ef3fc6b7e5a366a"
},
{
"url": "https://git.kernel.org/stable/c/cfec9e7f15a56cb0104bac13d01e5d11e1ba84fb"
},
{
"url": "https://git.kernel.org/stable/c/1a3670b6a6b5679fe56c5890157b344f091e64f8"
},
{
"url": "https://git.kernel.org/stable/c/4a17c73c83798c2fa9c7920ad5a98803adce3e01"
},
{
"url": "https://git.kernel.org/stable/c/8b2fd5c0aeda935294159206af9d6179282d425a"
},
{
"url": "https://git.kernel.org/stable/c/961e2a17c5e3559b3f8654d2daabdd25a42e770a"
}
],
"title": "bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()",
"x_generator": {
"engine": "bippy-1.2.0"
}
}
},
"cveMetadata": {
"assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"assignerShortName": "Linux",
"cveId": "CVE-2026-97573",
"datePublished": "2026-09-25T10:21:57.443Z",
"dateReserved": "2026-09-24T16:01:01.156Z",
"dateUpdated": "2026-10-19T09:09:35.902Z",
"state": "PUBLISHED"
},
"dataType": "CVE_RECORD",
"dataVersion": "5.2",
"vulnerability-lookup:meta": {
"epss": {
"cve": "CVE-2026-97573",
"date": "2026-11-14",
"epss": "0.00604",
"percentile": "0.49503"
},
"microsoft_vex": {
"current_release_date": "2026-10-21T18:38:56.000Z",
"cve": "CVE-2026-97573",
"id": "msrc_CVE-2026-97573",
"initial_release_date": "2026-09-27T23:36:55.000Z",
"product_status:fixed": "1",
"product_status:known_affected": "1",
"product_status:under_investigation": "1",
"source": "Microsoft CSAF VEX",
"status": "final",
"title": "bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()",
"url": "https://msrc.microsoft.com/csaf/vex/2026/msrc_cve-2026-97573.json",
"version": "4"
},
"nvd": {
"cve": {
"affected": [
{
"affectedData": [
{
"defaultStatus": "unaffected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"lessThan": "52fc97cbc3ba118aad84e7c001bf02ebe8496f70",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "40b4a7bb6b0b872b45f017dbf211268de098b75c",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "af9a2bdaba0b4ceb0fc5e5122ef3fc6b7e5a366a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "cfec9e7f15a56cb0104bac13d01e5d11e1ba84fb",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "1a3670b6a6b5679fe56c5890157b344f091e64f8",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "4a17c73c83798c2fa9c7920ad5a98803adce3e01",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "8b2fd5c0aeda935294159206af9d6179282d425a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
},
{
"lessThan": "961e2a17c5e3559b3f8654d2daabdd25a42e770a",
"status": "affected",
"version": "8fbf58e17dce8f250dda9ad6b0a49b3041f0af14",
"versionType": "git"
}
]
},
{
"defaultStatus": "affected",
"product": "Linux",
"programFiles": [
"drivers/net/ethernet/broadcom/bnxt/bnxt.c"
],
"repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
"vendor": "Linux",
"versions": [
{
"status": "affected",
"version": "5.10"
},
{
"lessThan": "5.10",
"status": "unaffected",
"version": "0",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.10.*",
"status": "unaffected",
"version": "5.10.271",
"versionType": "semver"
},
{
"lessThanOrEqual": "5.15.*",
"status": "unaffected",
"version": "5.15.222",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.1.*",
"status": "unaffected",
"version": "6.1.189",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.6.*",
"status": "unaffected",
"version": "6.6.158",
"versionType": "semver"
},
{
"lessThanOrEqual": "6.12.*",
"status": "unaffected",
"version": "6.12.111",
"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"
}
]
}
],
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67"
}
],
"cveTags": [],
"descriptions": [
{
"lang": "en",
"value": "In the Linux kernel, the following vulnerability has been resolved:\n\nbnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()\n\nbnxt_rx_ring_reset() frees the ring buffers and then reallocates them,\nignoring the result.\n\nbnxt_alloc_one_rx_ring() can fail in bnxt_alloc_one_tpa_info_data(), which\nreturns -ENOMEM on the first failed allocation and leaves the remaining\nrxr-\u003erx_tpa[] entries zeroed.\n\nThe error isn\u0027t propagated up, so the loop in bnxt_rx_ring_reset\ncontinues and at the end the code re-enables TPA with partially\nunallocated rx_tpa array.\n\nThis means that when the agg_id from hardware is mapped to a SW index in\nrxr-\u003erx_tpa[], an uninitialized slot can be chosen which would hand a\nzero DMA address to the device.\n\nFix this by falling back to a global reset, which is what the existing\ncode already does when other functions fail, but unlike the other\nfailure cases this particular failure has to return because TPA can\u0027t\nbe re-enabled since the allocation failed."
}
],
"id": "CVE-2026-97573",
"lastModified": "2026-10-19T10:17:26.470",
"metrics": {
"cvssMetricV31": [
{
"cvssData": {
"attackComplexity": "HIGH",
"attackVector": "NETWORK",
"availabilityImpact": "HIGH",
"baseScore": 8.1,
"baseSeverity": "HIGH",
"confidentialityImpact": "HIGH",
"integrityImpact": "HIGH",
"privilegesRequired": "NONE",
"scope": "UNCHANGED",
"userInteraction": "NONE",
"vectorString": "CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H",
"version": "3.1"
},
"exploitabilityScore": 2.2,
"impactScore": 5.9,
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"type": "Secondary"
}
]
},
"published": "2026-09-25T11:17:08.017",
"references": [
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/1a3670b6a6b5679fe56c5890157b344f091e64f8"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/40b4a7bb6b0b872b45f017dbf211268de098b75c"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/4a17c73c83798c2fa9c7920ad5a98803adce3e01"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/52fc97cbc3ba118aad84e7c001bf02ebe8496f70"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/8b2fd5c0aeda935294159206af9d6179282d425a"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/961e2a17c5e3559b3f8654d2daabdd25a42e770a"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/af9a2bdaba0b4ceb0fc5e5122ef3fc6b7e5a366a"
},
{
"source": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"url": "https://git.kernel.org/stable/c/cfec9e7f15a56cb0104bac13d01e5d11e1ba84fb"
}
],
"sourceIdentifier": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
"vulnStatus": "Received"
}
},
"redhat_vex": {
"aggregate_severity": "Moderate",
"current_release_date": "2026-11-06T02:27:51+00:00",
"cve": "CVE-2026-97573",
"id": "CVE-2026-97573",
"initial_release_date": "2026-09-25T00:00:00+00:00",
"product_status:known_affected": "161",
"product_status:known_not_affected": "42",
"source": "Red Hat CSAF VEX",
"status": "final",
"title": "kernel: bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()",
"url": "https://security.access.redhat.com/data/csaf/v2/vex/2026/cve-2026-97573.json",
"version": "3"
}
}
}
Drag nodes to arrange them. Double-click a related vulnerability to open it, or a source to visit its link. The Physics button on the left tunes the layout and the simulation; the legend at the bottom left hides or shows nodes by kind and by sighting type.
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.
Vulnerability timeline
Sightings and recorded dates, grouped by day · UTC
How durations are calculated
Following the VTEM framework (Black Hat USA 2015), time to patch starts when the vendor or a coordinator was informed, total time to patch at discovery, and disclosure to patch at public disclosure; vendor response time runs from the report to its acknowledgement. Time to exploit and time unpatched start at the earliest discovery or report, falling back to public disclosure. Unpatched time ends at the first recorded patch, or the calculation time when no patch is recorded. Exploitation to patch shows the interval between those two events; a published proof of concept is a public exploit, not exploitation.
Each result shows its source dates. A negative interval means the end event came first; when date-only inputs leave the order open, the result says so. Date-only inputs are approximate. The earliest evidence wins: KEV report dates and sightings are labelled as such. Records describing another vulnerability are listed but never calculated from, and a PoC alone does not establish exploitation. Missing patch evidence does not prove that no patch exists. Filters below change the event list only.
Loading timeline…
The approach is described in our paper Mapping CVEs to MITRE ATT&CK Techniques: A Curated Gold-Set Classifier and the Limits of LLM-Assisted Label Expansion.
Browse all ATT&CK techniques and the vulnerabilities related to each.
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.