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

bnxt_en: Prevent queue stop with deferred completions

When the driver receives a burst of packets, it can mark a BD with the
NO_CMPL bit to defer completions. The expectation is that the last
packet in the ring will have this bit unset and the completion generated
by that packet will cleanup that packet and the ones preceding it. This
helps to reduce the number of completions fired.

The suppressed completions are controlled by the driver and the number
of packets with suppressed completions scales with the size of the ring.
SW USO packets, on the other hand, have an upper bound on the maximum
number of BDs which can be consumed which does not scale with the ring
size.

So, for small rings it is possible that: a burst of packets is handed to
the driver, the driver defers completions for all of the packets because
the number of free descriptors stays above the threshold in the driver.
Then, a USO packet arrives, but the number of BDs available is not
enough and the USO code exits early.

In this case, you end up in a state where the ring is full of packets
with their completions suppressed, which can cause the queue to stop and
never be restarted.

Assuming default CONFIG_MAX_SKB_FRAGS, this is only possible for small
rings (<= 457 descriptors, below the driver default value) when
a burst of packets fills the ring, followed by a large USO packet that
can't fit. For larger rings, the delta between the completion
suppression threshold and the BDs required for SW USO is large enough
that completions will fire and this case is unreachable.

This issue was pointed out by Sashiko and while it seems fairly unlikely
given that the queue size must be small to trigger this, it is indeed
possible.

Fix this by tracking the last BD which deferred completions and
centralizing the logic for deciding when to ring the doorbell. The NO_CMPL
bit is now cleared in bnxt_txr_db_kick(), so every doorbell site is
covered, including the SW USO early exit. This guarantees the ring always
ends in a BD which generates a completion to clean it and wake the queue.
Published: 2026-09-25
Score: 5.5 Medium
EPSS: < 1% Very Low
KEV: No
Impact: Denial of Service via network queue stall
Action: Apply Patch
AI Analysis

Impact

The bnxt_en network driver can defer packet completions by setting a NO_CMPL bit on buffer descriptors. When a burst of packets is processed, the driver may mark all descriptors as deferred, leaving no completion pending. If the driver’s transmit ring is small (up to 457 descriptors) and a large user‑space offload (SW USO) packet follows, the driver cannot free enough descriptors and exits early. The ring then remains full of descriptors with suppressed completions, preventing any completion message and causing the transmit queue to stall permanently. The update resolves the issue by clearing the NO_CMPL flag in every doorbell path, ensuring that at least one completion is generated to clean the queue.

Affected Systems

This issue exists only in the Linux kernel’s bnxt_en driver. Systems running a kernel featuring the vulnerable driver and configured with a small transmit ring (default maximum 457 descriptors) are affected. The problem is confined to this driver; other network drivers or user‑space applications are not impacted.

Risk and Exploitability

The CVSS score of 5.5 indicates moderate severity, and the EPSS score of < 1% reflects a very low likelihood of exploitation. The driver is not listed in CISA’s KEV catalog. Exploitation would require a specific traffic pattern – a burst of packets followed by a large SW USO packet – and is therefore unlikely to occur accidentally. If an attacker can control the traffic to an interface with a small transmit ring, they could induce a permanent queue stall. No public exploit has been reported, and the impact is limited to denial of service on the affected network interface.

Generated by OpenCVE AI on October 1, 2026 at 11:40 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Upgrade the Linux kernel to a version that includes the patched bnxt_en driver, which clears the NO_CMPL flag and addresses resource exhaustion and initialization weaknesses.
  • Increase the transmit ring size on the affected interface so that the number of descriptors exceeds 457, reducing the chance that all descriptors are marked for deferred completion and mitigating the race condition linked to buffer boundaries (CWE‑772).
  • Implement monitoring for stalled queues and trigger an automated driver reload or interface reset when a permanent queue stop is detected, ensuring recovery from any accidental or malicious persistence.

Generated by OpenCVE AI on October 1, 2026 at 11:40 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Thu, 01 Oct 2026 10:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-658
CWE-665

Tue, 29 Sep 2026 13:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-772
References
Metrics threat_severity

None

cvssV3_1

{'score': 5.5, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:N/A:H'}

threat_severity

Moderate


Fri, 25 Sep 2026 23:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-658
CWE-665

Fri, 25 Sep 2026 10:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: bnxt_en: Prevent queue stop with deferred completions When the driver receives a burst of packets, it can mark a BD with the NO_CMPL bit to defer completions. The expectation is that the last packet in the ring will have this bit unset and the completion generated by that packet will cleanup that packet and the ones preceding it. This helps to reduce the number of completions fired. The suppressed completions are controlled by the driver and the number of packets with suppressed completions scales with the size of the ring. SW USO packets, on the other hand, have an upper bound on the maximum number of BDs which can be consumed which does not scale with the ring size. So, for small rings it is possible that: a burst of packets is handed to the driver, the driver defers completions for all of the packets because the number of free descriptors stays above the threshold in the driver. Then, a USO packet arrives, but the number of BDs available is not enough and the USO code exits early. In this case, you end up in a state where the ring is full of packets with their completions suppressed, which can cause the queue to stop and never be restarted. Assuming default CONFIG_MAX_SKB_FRAGS, this is only possible for small rings (<= 457 descriptors, below the driver default value) when a burst of packets fills the ring, followed by a large USO packet that can't fit. For larger rings, the delta between the completion suppression threshold and the BDs required for SW USO is large enough that completions will fire and this case is unreachable. This issue was pointed out by Sashiko and while it seems fairly unlikely given that the queue size must be small to trigger this, it is indeed possible. Fix this by tracking the last BD which deferred completions and centralizing the logic for deciding when to ring the doorbell. The NO_CMPL bit is now cleared in bnxt_txr_db_kick(), so every doorbell site is covered, including the SW USO early exit. This guarantees the ring always ends in a BD which generates a completion to clean it and wake the queue.
Title bnxt_en: Prevent queue stop with deferred completions
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-19T09:09:31.977Z

Reserved: 2026-09-24T16:01:01.155Z

Link: CVE-2026-97569

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-25T11:17:07.570

Modified: 2026-10-19T10:17:26.020

Link: CVE-2026-97569

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-09-25T00:00:00Z

Links: CVE-2026-97569 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-10-01T11:45:07Z

Weaknesses
  • CWE-772

    Missing Release of Resource after Effective Lifetime