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

wifi: mt76: mt7925: ensure tx headroom in usb_sdio_tx_prepare_skb

mt7925_usb_sdio_tx_prepare_skb() pushes a TX descriptor and a USB
header onto every skb and assumes the headroom for them is already
there. That holds for locally generated traffic, where mac80211
reserves hw->extra_tx_headroom, but forwarded frames are sent through
ieee80211_8023_xmit(), which does not reserve it. Bridge a wired
interface to an mt7925u AP and the first forwarded frame that arrives
short panics the kernel:

skbuff: skb_under_panic: len:415 put:4 tail:0x19b end:0x640 dev:wlan1
kernel BUG at net/core/skbuff.c:212!
Call trace:
skb_panic+0x58/0x60 (P)
skb_push+0x58/0x60
mt7925_usb_sdio_tx_prepare_skb+0xf8/0x1b8 [mt7925_common]
mt76u_tx_queue_skb+0xa0/0x1f8 [mt76_usb]
__mt76_tx_queue_skb+0x54/0xe8 [mt76]
mt76_txq_schedule.part.0+0x204/0x478 [mt76]
mt76_txq_schedule_all+0x50/0x80 [mt76]
mt792x_tx_worker+0x68/0x100 [mt792x_lib]
__mt76_worker_fn+0x84/0x150 [mt76]

Whether a given setup hits it depends on how much headroom the ingress
netdev leaves in its rx skbs. Reproduced on a Raspberry Pi 5 bridging
onboard ethernet to a Netgear A9000; originally reported on an MT7986
router running OpenWrt. Nick Morrow's testing on a Pi 4 (bcmgenet),
which leaves more headroom, helped narrow the trigger to the ingress
path.

The same bug was fixed on mt7921 by commit 98c4d0abf5c4 ("mt76:
mt7921: don't assume adequate headroom for SDIO headers"), but mt7925
was copied from mt7921 without the fix. Add the same guard here.
Published: 2026-09-04
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The flaw exists in the Linux kernel's mt76 Wi‑Fi driver for MT7925 devices. The code that prepares a transmit packet assumes that sufficient headroom is already available for a TX descriptor and a USB header. Local traffic does reserve the required space, but frames forwarded through the bridge do not, causing a buffer overrun when skb_push() is called. This triggers a kernel BUG and a panic, rendering the host unresponsive. The problem manifests when a wired interface is bridged to an MT7925‑based access point and the first forwarded frame triggers the overflow. The impact is a local or network‑initiated denial of service; there is no evidence of an arbitrary code execution vector.

Affected Systems

Affected systems include Linux kernel implementations that use the mt76 Wi‑Fi driver for MT7925 hardware. The issue was reproduced on a Raspberry Pi 5 running a recent kernel and on an MT7986 router running OpenWrt. Any distribution that ships the mt7925 driver without the headroom guard is vulnerable.

Risk and Exploitability

No EPSS score is available and the vulnerability is not listed in CISA’s KEV catalog, indicating low publicly documented exploitation activity. The CVSS score is not provided but the severity can be inferred as high because a single benign packet can crash the kernel. The attack vector is local or remote depending on whether an attacker can inject traffic through a bridged interface. The condition for exploitation is that forwarded frames lose the required headroom in their skb, which occurs when the ingress network device does not reserve extra space. The risk is that any user with network access to the device can trigger a crash, leading to a denial of service.

Generated by OpenCVE AI on September 4, 2026 at 18:55 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Apply a Linux kernel patch that implements the headroom guard in mt7925_usb_sdio_tx_prepare_skb (the same change applied to mt7921 in commit 98c4d0abf5c4).
  • If an updated kernel is not available, avoid bridging a wired interface to the MT7925 wireless device until the patch is applied. Avoid forwarding traffic that could reach the driver via usb_sdio_tx_prepare_skb.
  • Check for and apply any distribution‑specific updates for the mt76 driver package that contain the headroom check.

Generated by OpenCVE AI on September 4, 2026 at 18:55 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Fri, 04 Sep 2026 19:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-119
CWE-122

Fri, 04 Sep 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: wifi: mt76: mt7925: ensure tx headroom in usb_sdio_tx_prepare_skb mt7925_usb_sdio_tx_prepare_skb() pushes a TX descriptor and a USB header onto every skb and assumes the headroom for them is already there. That holds for locally generated traffic, where mac80211 reserves hw->extra_tx_headroom, but forwarded frames are sent through ieee80211_8023_xmit(), which does not reserve it. Bridge a wired interface to an mt7925u AP and the first forwarded frame that arrives short panics the kernel: skbuff: skb_under_panic: len:415 put:4 tail:0x19b end:0x640 dev:wlan1 kernel BUG at net/core/skbuff.c:212! Call trace: skb_panic+0x58/0x60 (P) skb_push+0x58/0x60 mt7925_usb_sdio_tx_prepare_skb+0xf8/0x1b8 [mt7925_common] mt76u_tx_queue_skb+0xa0/0x1f8 [mt76_usb] __mt76_tx_queue_skb+0x54/0xe8 [mt76] mt76_txq_schedule.part.0+0x204/0x478 [mt76] mt76_txq_schedule_all+0x50/0x80 [mt76] mt792x_tx_worker+0x68/0x100 [mt792x_lib] __mt76_worker_fn+0x84/0x150 [mt76] Whether a given setup hits it depends on how much headroom the ingress netdev leaves in its rx skbs. Reproduced on a Raspberry Pi 5 bridging onboard ethernet to a Netgear A9000; originally reported on an MT7986 router running OpenWrt. Nick Morrow's testing on a Pi 4 (bcmgenet), which leaves more headroom, helped narrow the trigger to the ingress path. The same bug was fixed on mt7921 by commit 98c4d0abf5c4 ("mt76: mt7921: don't assume adequate headroom for SDIO headers"), but mt7925 was copied from mt7921 without the fix. Add the same guard here.
Title wifi: mt76: mt7925: ensure tx headroom in usb_sdio_tx_prepare_skb
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-09-04T15:54:29.224Z

Reserved: 2026-08-26T14:34:25.795Z

Link: CVE-2026-80825

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-09-04T16:18:10.410

Modified: 2026-09-04T16:18:10.410

Link: CVE-2026-80825

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-09-04T19:00:14Z

Weaknesses
  • CWE-119

    Improper Restriction of Operations within the Bounds of a Memory Buffer

  • CWE-122

    Heap-based Buffer Overflow