Skip to main content
CVE Vulnerability Database
Vulnerability Database/CVE-2026-43031

CVE-2026-43031: Linux Kernel Xilinx axienet DoS Flaw

CVE-2026-43031 is a denial of service vulnerability in the Linux kernel Xilinx axienet driver caused by improper BQL accounting in multi-BD TX packets, leading to queue stalling. This article covers technical details, impact, and mitigations.

Published:

CVE-2026-43031 Overview

CVE-2026-43031 is a Linux kernel vulnerability in the Xilinx AXI Ethernet driver (drivers/net/ethernet/xilinx/xilinx_axienet). The flaw affects Byte Queue Limits (BQL) accounting when a TX packet spans multiple buffer descriptors (BDs) using scatter-gather. The function axienet_free_tx_chain accumulates per-BD lengths into a counter that resets on each NAPI poll. When BDs for a single packet complete across separate polls, byte counts are lost and never credited to BQL. The transmit queue eventually stalls because BQL believes bytes remain permanently in flight.

Critical Impact

Remote network traffic patterns can trigger TX queue stalls on systems using the Xilinx AXI Ethernet driver, producing a high-availability denial of service condition.

Affected Products

  • Linux kernel versions containing the unpatched xilinx_axienet driver
  • Systems using Xilinx AXI Ethernet hardware with scatter-gather TX
  • Embedded and FPGA-based platforms relying on the affected driver

Discovery Timeline

  • 2026-05-01 - CVE-2026-43031 published to NVD
  • 2026-05-03 - Last updated in NVD database

Technical Details for CVE-2026-43031

Vulnerability Analysis

The Xilinx AXI Ethernet driver manages TX completion through axienet_free_tx_chain. For scatter-gather packets, an SKB is split across multiple buffer descriptors. The driver sums each BD's actual length from descriptor status into a caller-supplied accumulator. NAPI polling resets this accumulator on every invocation.

When the BDs for a single packet complete across two or more NAPI poll cycles, the partial byte count from the earlier poll is discarded. Those bytes are never reported to netdev_completed_queue(). BQL continues to track them as in-flight, gradually consuming the available queue limit. Once the limit is exhausted, the kernel stops dispatching frames to the device, and the TX queue stalls.

This flaw produces a high-availability impact without requiring authentication or user interaction. An attacker capable of generating sustained network load can induce stalls on affected hosts, disrupting services that depend on the interface.

Root Cause

The accumulator pattern in axienet_free_tx_chain does not survive across NAPI poll boundaries. Per-BD length summation works only when all descriptors of a packet complete in the same poll. The SKB pointer is stored exclusively on the last BD of a packet, but the byte count is derived from descriptor status rather than skb->len.

Attack Vector

A remote attacker sends crafted or high-volume traffic that triggers scatter-gather TX with descriptor completions split across NAPI polls. Repeated occurrences exhaust BQL's tracked byte budget. The interface eventually halts transmission until the queue is reset or the driver reloaded. The vulnerability requires no privileges and no user interaction.

The fix changes the accounting model. When the final BD of a packet completes, the driver uses skb->len for the byte count instead of summing per-BD status lengths. This matches netdev_sent_queue(), which debits skb->len, and survives NAPI poll boundaries because no partial packet contributes to the running total.

Detection Methods for CVE-2026-43031

Indicators of Compromise

  • Sustained TX queue stalls on interfaces backed by the xilinx_axienet driver
  • netdev watchdog timeouts logged in dmesg for the affected interface
  • Growing discrepancy between BQL inflight counters and actual driver state in /sys/class/net/<iface>/queues/tx-*/byte_queue_limits/

Detection Strategies

  • Monitor kernel logs for repeated TX timeouts or carrier resets on Xilinx AXI Ethernet interfaces
  • Inspect ethtool -S <iface> counters for stalled TX statistics combined with non-zero pending descriptors
  • Correlate interface throughput drops with NAPI poll frequency on systems running affected kernel versions

Monitoring Recommendations

  • Track kernel version inventory across embedded and FPGA platforms to identify exposure
  • Alert on NETDEV WATCHDOG messages in centralized log pipelines
  • Baseline TX byte counters per interface and flag prolonged zero-throughput periods on otherwise active links

How to Mitigate CVE-2026-43031

Immediate Actions Required

  • Apply the upstream Linux kernel patches referenced by commits 2a0323a, 3c3a6b9, and d1978d0 to the affected stable trees
  • Identify all hosts running the xilinx_axienet driver and prioritize patch deployment on production network paths
  • Reboot or reload the driver after updating to clear any persistent BQL state

Patch Information

The fix is committed to the upstream Linux kernel. Refer to Kernel Git Commit 2a0323a, Kernel Git Commit 3c3a6b9, and Kernel Git Commit d1978d0 for the corrected accounting logic that uses skb->len on final-BD completion.

Workarounds

  • Disable scatter-gather offload on the affected interface using ethtool -K <iface> sg off to force single-BD packets, accepting a performance trade-off
  • Implement automated interface recovery scripts that detect TX stalls and reset the queue until patches are applied
  • Restrict untrusted network exposure on hosts that cannot be patched immediately
bash
# Configuration example: disable scatter-gather as a temporary workaround
ethtool -K eth0 sg off
ethtool -K eth0 tso off
ethtool -K eth0 gso off

Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

Default Legacy - Prefooter | Experience the World’s Most Advanced Cybersecurity Platform

Experience the Most Advanced Cybersecurity Platform

See how the world’s most intelligent, autonomous cybersecurity platform can protect your organization today and into the future.