KernelScan.io

HIGH Introduced in 5.10

bnxt_en RxRingReset Corruption

CVE-2026-97573

CVSS 8.1 / 10.0 NVD

CVSS:3.1/AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H

KernelScan AI8.1HIGH

01

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.

02

Engine v0.6.0

Risk summary

A Broadcom bnxt network driver bug allows memory corruption when an RX ring reset's buffer reallocation silently fails under memory pressure. A remote attacker can trigger this by sending heavy network traffic to a system with a bnxt NIC that is already under memory pressure, causing the driver to hand a zero DMA address to the hardware and corrupt kernel memory at a fixed address with attacker-controlled packet data.

Affecteddrivers/net/ethernet/broadcom/bnxt/bnxt.c (bnxt_en)

Vulnerability analysis

When a Broadcom bnxt network interface encounters buffer errors under heavy traffic, the driver performs a localized RX ring reset that frees and reallocates receive buffers. If the reallocation fails partway through due to memory pressure, the failure is silently ignored and packet aggregation is re-enabled with uninitialized buffer slots containing zero DMA addresses. The hardware can then select one of these uninitialized slots and attempt to DMA incoming packet data to physical address zero — either crashing the system via a DMA fault or corrupting kernel memory at that address with attacker-controlled packet content. The fix checks the allocation return value and, on failure, falls back to a full device reset instead of re-enabling aggregation with partially allocated buffers. This vulnerability is reachable only on systems equipped with a Broadcom bnxt network interface; a remote attacker can trigger the buffer errors by sending heavy traffic, but exploiting the missed allocation failure also depends on the system being under memory pressure when the ring reset occurs.

03

BranchIntroducedFixed inPatch commit
5.105.105.10.27152fc97cbc3ba
5.155.105.15.22240b4a7bb6b0b
6.15.106.1.189af9a2bdaba0b
6.65.106.6.158cfec9e7f15a5
6.125.106.12.1111a3670b6a6b5
6.185.106.18.534a17c73c8379
7.25.107.2.78b2fd5c0aeda
mainline5.107.3-rc3961e2a17c5e3
cip/6.125.106.12.111-cip321a3670b6a6b5