Katalog CVE

CVE-2026-97573

WysokieCVSS 8.1
Opublikowano: Zaktualizowano: Przetłumaczono: NVD NIST

Streszczenie

W jądrze Linux funkcja bnxt_rx_ring_reset() ignorowała wynik ponownej alokacji buforów pierścienia RX. Gdy bnxt_alloc_one_rx_ring() zawodziło z -ENOMEM, część wpisów rxr->rx_tpa[] pozostawała wyzerowana, a TPA było ponownie włączane. Poprawka wymusza globalny reset w przypadku błędu alokacji.

Ocena ryzyka

Niezerowany wpis rx_tpa[] mógł zostać wybrany dla agg_id z hardware, przekazując urządzeniu zerowy adres DMA, co prowadzi do uszkodzenia danych lub awarii systemu.

Rekomendacja

Zaktualizuj jądro Linux do wersji z poprawką w bnxt_en. W środowiskach produkcyjnych z kartami Broadcom rozważ wcześniejsze wdrożenie poprawki.

Inne podatności w Linux kernel

Zobacz wszystkie
Oryginalny opis (angielski, źródło NVD)

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.

Dane podatności pochodzą z NVD (NIST) · CISA KEV · EPSS