VYPR
Unrated severityNVD Advisory· Published Jan 13, 2026· Updated Apr 15, 2026

CVE-2025-68770

CVE-2025-68770

Description

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

bnxt_en: Fix XDP_TX path

For XDP_TX action in bnxt_rx_xdp(), clearing of the event flags is not correct. __bnxt_poll_work() -> bnxt_rx_pkt() -> bnxt_rx_xdp() may be looping within NAPI and some event flags may be set in earlier iterations. In particular, if BNXT_TX_EVENT is set earlier indicating some XDP_TX packets are ready and pending, it will be cleared if it is XDP_TX action again. Normally, we will set BNXT_TX_EVENT again when we successfully call __bnxt_xmit_xdp(). But if the TX ring has no more room, the flag will not be set. This will cause the TX producer to be ahead but the driver will not hit the TX doorbell.

For multi-buf XDP_TX, there is no need to clear the event flags and set BNXT_AGG_EVENT. The BNXT_AGG_EVENT flag should have been set earlier in bnxt_rx_pkt().

The visible symptom of this is that the RX ring associated with the TX XDP ring will eventually become empty and all packets will be dropped. Because this condition will cause the driver to not refill the RX ring seeing that the TX ring has forever pending XDP_TX packets.

The fix is to only clear BNXT_RX_EVENT when we have successfully called __bnxt_xmit_xdp().

AI Insight

LLM-synthesized narrative grounded in this CVE's description and references.

In the Linux kernel's bnxt_en driver, a bug in the XDP_TX path can cause TX doorbells to be missed, leading to RX ring starvation and packet drops.

Vulnerability

Description

In the Linux kernel's bnxt_en driver, the XDP_TX path in bnxt_rx_xdp() contains a flaw in how event flags are cleared. During NAPI polling, __bnxt_poll_work() calls bnxt_rx_pkt() which may invoke bnxt_rx_xdp() multiple times in a loop. If BNXT_TX_EVENT was set in an earlier iteration (indicating pending XDP_TX packets), a subsequent XDP_TX action could incorrectly clear it. Normally, the flag is set again when __bnxt_xmit_xdp() succeeds, but if the TX ring is full, the flag remains cleared, leaving the TX producer ahead without a doorbell ring [1][2].

Exploitation

An attacker with the ability to trigger XDP_TX actions on a system using the bnxt_en driver can exploit this condition. No special privileges beyond network access are required, as XDP programs are typically loaded by administrators, but if an attacker can influence XDP program behavior or cause specific packet patterns, they can induce the bug. The attack surface is local, requiring the ability to send packets that result in XDP_TX actions.

Impact

The visible symptom is that the RX ring associated with the TX XDP ring eventually becomes empty, causing all packets to be dropped. This denial-of-service condition persists because the driver fails to refill the RX ring, believing there are forever pending XDP_TX packets. The bug can lead to complete network interface unavailability for affected traffic flows.

Mitigation

The fix, committed to the Linux kernel stable tree, ensures that only BNXT_RX_EVENT is cleared when __bnxt_xmit_xdp() succeeds, preventing the erroneous clearing of BNXT_TX_EVENT. Users should apply the patch from the referenced commits [1][2] or 2] to their kernel.

AI Insight generated on May 19, 2026. Synthesized from this CVE's description and the cited reference URLs; citations are validated against the source bundle.

Affected products

1

Patches

0

No patches discovered yet.

Vulnerability mechanics

AI mechanics synthesis has not run for this CVE yet.

References

3

News mentions

0

No linked articles in our index yet.