Linux kernel maintainers have fixed CVE-2026-68199, an out-of-bounds memory-access flaw in the ath6kl Wi-Fi driver for older Qualcomm Atheros AR600x hardware. Administrators running a Linux system with the ath6kl_core module loaded should move to a kernel that includes the backport: Linux 6.6.148, 6.12.101, 6.18.42, 7.1.6, or 7.2-rc5 and later in their respective lines.

The immediate practical point is narrower than the CVE label suggests. This does not affect Windows itself, typical modern Qualcomm Wi-Fi adapters, or every Linux machine with an Atheros-branded radio. It affects systems that use the specific

ath6kl

driver — primarily embedded and older mobile hardware built around AR6003, AR6004, and AR6005 wireless chips — and only when the vulnerable driver is present and in use.

The NVD published the record on August 10, 2026, using kernel.org as its source. The upstream Linux wireless mailing list shows the fix had already gone through four patch revisions, with the final revision correcting more than a missing

return

statement: it also preserves driver state consistency when rejecting an invalid firmware event.

Technical diagram showing a Wi‑Fi firmware out-of-bounds vulnerability and its protected-memory patch.The bug was a validation failure at a firmware boundary​

The vulnerable code sits in

aggr_recv_addba_req_evt()

, which processes a firmware event relating to Wi-Fi receive aggregation. In 802.11n terms, an ADDBA event concerns a Block Ack aggregation session: a method of receiving multiple frames efficiently while tracking a window of outstanding packets.

The driver received a firmware-supplied

win_sz

value — the aggregation window size — and checked whether it was within

AGGR_WIN_SZ_MIN

and

AGGR_WIN_SZ_MAX

. But before this fix, an invalid value only generated a debug message. Execution continued, and the same unchecked value was passed into

TID_WINDOW_SZ()

to calculate the amount of memory to allocate with

kzalloc()

.

That sequence created the actual security problem. A too-small or malformed window size could yield a zero-size allocation; an oversized value could cause the calculation to overflow. The resulting allocation size was then recorded as the queue size, allowing later code to use an incorrectly sized buffer and access memory outside its bounds.

This is a classic kernel-driver failure mode: an input is visibly recognized as invalid but is still permitted to affect allocation and indexing decisions. Logging an error after the value has already crossed a trust boundary does not make the value safe.

The final patch takes the safer route. It tears down any active aggregation state for the affected traffic identifier, logs the invalid window size, and returns before calculating a buffer size or allocating memory. The visible code change is small, but the order of operations was revised after review for a reason: rejecting the bad event without first clearing a pre-existing aggregation session could leave the driver carrying stale session state.

The final patch fixes a state-cleanup issue too​

Tristan Madani’s June 26 patch submission initially reads like a straightforward bounds-check repair. The revision history reveals the more important detail: reviewer Vasanthakumar Thiagarajan asked for the aggregation-session cleanup to happen before the validity check.

That produces this sequence in the repaired driver:

  1. Locate the per-TID receive aggregation state.
  2. Delete an existing aggregation session if one is active.
  3. Reject an out-of-range firmware window size immediately.
  4. Allocate and initialize a receive queue only for a valid value.

The distinction matters operationally. A simplistic fix that merely returned on invalid input would stop the dangerous allocation but could leave an earlier receive aggregation session active. The merged form handles both halves of the failure: it prevents the malformed size from reaching memory management and resets the state associated with the rejected event.

The Linux wireless patch was marked for stable backporting and identifies the original

ath6kl

driver import, commit

bdcd81707973

, as the introducing change. Kernel documentation says

ath6kl

became a proper non-staging driver with Linux 3.2, which aligns with the NVD’s affected range beginning at version 3.2.

The age of the underlying code should change how organizations triage this CVE. Affected deployments are more likely to be long-lived appliances, industrial systems, development boards, specialty tablets, and vendor-maintained embedded images than current desktop Linux installations. Those are precisely the environments where a kernel update may depend on a board vendor’s BSP release rather than a routine distribution update.


The supported hardware list is old, but the driver is still in current kernels​

Linux Wireless documentation identifies

ath6kl

as a FullMAC driver for the Atheros AR600x family. Its documented hardware list includes AR6003 over SDIO, AR6004 over USB or SDIO, and AR6005 devices recognized as AR6003-class hardware.

The Linux Kernel Driver Database shows that

CONFIG_ATH6KL

remains available in current upstream kernel lines and may be built as

ath6kl_core

; separate SDIO or USB bus support is needed to communicate with actual hardware. In other words, the driver’s vintage does not make the flaw academic. The code can remain enabled in modern kernel configurations, and vendors can carry it forward indefinitely.

The hardware requirement narrows the exposure significantly. Systems using

ath9k

,

ath10k

,

ath11k

,

ath12k

, Intel

iwlwifi

, Realtek drivers, Broadcom drivers, or Ethernet do not become affected merely because they run one of the vulnerable kernel versions. The relevant question is whether

ath6kl_core

is loaded and bound to an AR600x device.

Administrators can check a running Linux system with:

Code:
lsmod | grep ath6kl
lspci -nnk
lsusb

On embedded hardware,

dmesg | grep -i ath6kl

is often more useful because AR600x devices frequently connect over SDIO rather than PCI Express. A boot log naming

ath6kl

,

AR6003

,

AR6004

, or

AR6005

warrants a kernel-version check; a mere “Qualcomm Atheros” label does not.

NVD lists fixed builds, but leaves the risk score blank​

The NVD record lists the following fixed release points:

  • Linux 6.6.148 in the 6.6 long-term branch.
  • Linux 6.12.101 in the 6.12 branch.
  • Linux 6.18.42 in the 6.18 branch.
  • Linux 7.1.6 in the 7.1 branch.
  • Linux 7.2-rc5 and later in the development line.

The record currently has no CVSS v2, v3, or v4 score, and no CWE classification. That is not a finding of low severity; it means NVD had not completed its enrichment assessment when the CVE was published on August 10.

More importantly, neither the NVD record nor the upstream patch establishes a remote attack path from a malicious access point or nearby Wi-Fi client. The vulnerable value is described specifically as firmware-supplied. The patch series itself was framed as firmware trust-boundary hardening, but it does not document whether an attacker can induce a compliant or compromised firmware image to emit the out-of-range value through ordinary over-the-air traffic.

That missing link is the key limitation on severity claims. The memory corruption primitive exists in a kernel driver, but the published material does not yet show a proof of concept, observed exploitation, affected product list, or a demonstrated route from radio traffic to the bad firmware event. No other security outlet appears to have reported exploitability details as of August 11.

Windows and WSL users should separate host exposure from custom-kernel exposure​

For WindowsForum readers, this is primarily a Linux and embedded-device maintenance issue. Native Windows drivers do not use Linux’s

ath6kl

source file, so installing Windows 11 cumulative updates does not address — and is not required to address — CVE-2026-68199.

A normal WSL 2 installation also should not be assumed vulnerable simply because it runs a Linux kernel. WSL commonly presents a virtualized network interface to Linux guests rather than passing the host’s physical Wi-Fi adapter through to the guest, so the guest ordinarily has no reason to load

ath6kl

.

The exception is a custom deployment: WSL instances running a custom kernel, specialized Hyper-V or device-passthrough configuration, lab environments, and embedded Windows systems that boot a Linux companion OS should be checked like any other Linux host. If

ath6kl_core

is absent or no AR600x hardware is exposed to the Linux kernel, this CVE is outside that system’s attack surface.

For the systems that do use this driver, the remediation is uncomplicated: consume the vendor kernel update or backport the small upstream fix, then reboot into the updated kernel. The harder task is inventory — finding the older AR600x-equipped devices that are still running a maintained Linux image but are unlikely to appear in a conventional desktop patch report.