---
id: "CVE-2026-98958"
kind: "vulnerability"
aliases: ["CVE-2026-98958"]
title: "Linux kernel: Wi-Fi mt76 driver can stall MLO stations via counter drift"
severity: "unknown"
cvss: null
epss: 0.00206
exploited: false
status: "open"
category: "runtime"
products: []
ecosystems: []
tags: ["linux-kernel", "mlo", "mt76", "runtime", "wifi-7"]
not_affected_if: ["no-mlo-peers", "no-mt76-hardware"]
published_at: "2026-10-23T13:17:17+00:00"
first_seen_at: "2026-10-23T21:57:33+00:00"
updated_at: "2026-10-25T12:38:50+00:00"
sources: [{"source": "nvd", "url": "https://nvd.nist.gov/vuln/detail/CVE-2026-98958", "first_seen_at": "2026-10-23T21:57:33+00:00"}, {"source": "epss", "url": "https://api.first.org/data/v1/epss?cve=CVE-2026-98958", "first_seen_at": "2026-10-25T12:38:50+00:00"}]
---

# Linux kernel: Wi-Fi mt76 driver can stall MLO stations via counter drift

In the Linux kernel's mt76 Wi-Fi driver, frames sent on one link of a multi-link (MLO) peer can be counted against a different link than the one that completes them, so the counter drifts upward until the station is blocked. The sources describe a denial-of-service effect on wireless traffic, not code execution.

_Summary, check and fix written by a model from the sources; labelled as such._

## How to check

- unknown

## Fix

- Update to a Linux kernel release that includes the mt76 fix "account non-AQL frames per peer rather than per link" (the fixed version is not given in the sources)

## Timeline

- 2026-10-23T21:57:33+00:00 nvd https://nvd.nist.gov/vuln/detail/CVE-2026-98958
- 2026-10-25T12:38:50+00:00 epss https://api.first.org/data/v1/epss?cve=CVE-2026-98958

## From the sources

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

wifi: mt76: account non-AQL frames per peer rather than per link

The driver increments wcid->non_aql_packets when a frame goes to the
hardware queue. The completion path decrements the counter again.

For an MLO peer, the hardware reports the completion on the link that it
used for the transmission. This link can differ from the link that the
driver queued the frame on. In that case, the increment and the
decrement go to different link wcids, and the count drifts upwards until
it blocks the station.

Keep the count on the wcid of the primary link, like the other peer-wide
state.

---

_Free to read at a human pace. An API with keys and an MCP server are in preparation; early access: hello@infrastack.ai_
