---
id: CVE-2026-97573
title: |-
  In the Linux kernel, the following vulnerability has been resolved:

  bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()

  bnxt_rx_ring_reset() frees the ring buffers and then reallocates them,
  ignoring the result.

  bnxt_all…
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()

  bnxt_rx_ring_reset() frees the ring buffers and then reallocates them,
  ignoring the result.

  bnxt_all…
severity: high
cvss: 8.1
cvssVector: 'CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H'
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 <
    1a3670b6a6b5679fe56c5890157b344f091e64f8
  - >-
    Linux >= 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 <
    4a17c73c83798c2fa9c7920ad5a98803adce3e01
  - >-
    Linux >= 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 <
    8b2fd5c0aeda935294159206af9d6179282d425a
  - >-
    Linux >= 8fbf58e17dce8f250dda9ad6b0a49b3041f0af14 <
    961e2a17c5e3559b3f8654d2daabdd25a42e770a
  - Linux 5.10
published: '2026-09-25'
updated: '2026-09-25'
sourceUpdated: '2026-09-25T15:17:59.440'
source: NVD
sourceUrl: 'https://nvd.nist.gov/vuln/detail/CVE-2026-97573'
references:
  - url: 'https://git.kernel.org/stable/c/1a3670b6a6b5679fe56c5890157b344f091e64f8'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/4a17c73c83798c2fa9c7920ad5a98803adce3e01'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/8b2fd5c0aeda935294159206af9d6179282d425a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
  - url: 'https://git.kernel.org/stable/c/961e2a17c5e3559b3f8654d2daabdd25a42e770a'
    label: 416baaa9-dc9f-4396-8d5f-8c081fb06d67
tags:
  - nvd
  - cve.org
ingestedAt: '2026-09-25T11:06:38.910Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

bnxt_en: Handle buffer allocation failure in bnxt_rx_ring_reset()

bnxt_rx_ring_reset() frees the ring buffers and then reallocates them,
ignoring the result.

bnxt_alloc_one_rx_ring() can fail in bnxt_alloc_one_tpa_info_data(), which
returns -ENOMEM on the first failed allocation and leaves the remaining
rxr->rx_tpa[] entries zeroed.

The error isn't propagated up, so the loop in bnxt_rx_ring_reset
continues and at the end the code re-enables TPA with partially
unallocated rx_tpa array.

This means that when the agg_id from hardware is mapped to a SW index in
rxr->rx_tpa[], an uninitialized slot can be chosen which would hand a
zero DMA address to the device.

Fix this by falling back to a global reset, which is what the existing
code already does when other functions fail, but unlike the other
failure cases this particular failure has to return because TPA can't
be re-enabled since the allocation failed.

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
