CVE-2026-80944: wifi: mwifiex: Detach sync cmd buffer on interrupted wait

Published Sep 11, 2026
·
Updated

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

wifi: mwifiex: Detach sync cmd buffer on interrupted wait

mwifiex synchronous commands keep the caller-provided data buffer in cmdnode->databuf. Several callers pass stack-allocated objects there.

If waiteventinterruptibletimeout() is interrupted, the caller can return and release that stack object while the firmware command is still the current command. A late firmware response then reaches the normal response handler, which can copy data through cmdnode->databuf into the stale stack address.

This fixes a stack corruption observed during repeated association and disassociation cycles. The panic trace showed the command wait being interrupted immediately before a bad pointer dereference:

cmdwaitq terminated: -512 Unable to handle kernel paging request at virtual address 002c583837384662 Kernel panic - not syncing: stack-protector: Kernel stack is corrupted ... Tainted: [M]=MACHINECHECK

The fault address decodes as little-endian ASCII:

0x002c583837384662 -> "bF878X,\0"

which is a fragment of the VERSIONEXT firmware string exposed as debugfs "verext":

w8997o-V4, RF878X, FP92, 16.92.21.p153.7

The same runs also showed corrupted control data containing:

0x2400372e333531 -> "153.7\0$"

which is the tail of the same VERSIONEXT string. This points at a late VERSIONEXT response writing through a stale stack-backed databuf after the interrupted wait returned.

After cancelling pending commands on an interrupted or timed-out wait, detach the caller-owned data buffer from the still-current command. This preserves the existing command cancellation behaviour while preventing a late response from writing through a pointer whose lifetime ended with the waiting caller.

Tested on an i.MX8MP board using an 88W8997.

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade wifi: mwifiex to a version that resolves this vulnerability.

    Fixed in 16.92.21.p153.7
  2. Configuration

    Apply the fix described as “Detach sync cmd buffer on interrupted wait” so that the sync command’s caller-owned data buffer is detached from cmd_node->data_buf when wait_event_interruptible_timeout() is interrupted, preventing response writing through stale stack-backed data_buf/corrupted stack control data.

    wifi: mwifiex Detach sync cmd buffer on interrupted wait = enabled

Event History

Sep 11, 2026
CVE Published
via MITRE·07:42 PM
Data Sourced
via MITRE·07:42 PM
Description

Frequently Asked Questions

1

What conditions are needed to trigger the corruption?

The system must issue an mwifiex synchronous firmware command whose caller-provided buffer is retained in cmd_node->data_buf, and the interruptible command wait must be interrupted before the firmware response arrives. A later firmware response can then copy data into the caller's released stack buffer.

2

Which activity was observed to expose the issue?

The reported stack corruption occurred during repeated Wi-Fi association and disassociation cycles. The triggering command wait was interrupted immediately before the invalid pointer dereference.

3

How might an affected system present?

The reported outcome was a kernel paging-request fault followed by a stack-protector corruption panic. Logs may show "cmd_wait_q terminated: -512" before the fault.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203