{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-80944","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","state":"PUBLISHED","assignerShortName":"Linux","dateReserved":"2026-08-26T14:34:25.803Z","datePublished":"2026-09-11T19:42:16.076Z","dateUpdated":"2026-09-14T11:59:05.396Z"},"containers":{"cna":{"providerMetadata":{"orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux","dateUpdated":"2026-09-14T11:59:05.396Z"},"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: mwifiex: Detach sync cmd buffer on interrupted wait\n\nmwifiex synchronous commands keep the caller-provided data buffer in\ncmd_node->data_buf. Several callers pass stack-allocated objects there.\n\nIf wait_event_interruptible_timeout() is interrupted, the caller can\nreturn and release that stack object while the firmware command is still\nthe current command. A late firmware response then reaches the normal\nresponse handler, which can copy data through cmd_node->data_buf into the\nstale stack address.\n\nThis fixes a stack corruption observed during repeated association and\ndisassociation cycles. The panic trace showed the command wait being\ninterrupted immediately before a bad pointer dereference:\n\n  cmd_wait_q terminated: -512\n  Unable to handle kernel paging request at virtual address 002c583837384662\n  Kernel panic - not syncing: stack-protector: Kernel stack is corrupted\n  ...\n  Tainted: [M]=MACHINE_CHECK\n\nThe fault address decodes as little-endian ASCII:\n\n  0x002c583837384662 -> \"bF878X,\\0\"\n\nwhich is a fragment of the VERSION_EXT firmware string exposed as\ndebugfs \"verext\":\n\n  w8997o-V4, RF878X, FP92, 16.92.21.p153.7\n\nThe same runs also showed corrupted control data containing:\n\n  0x2400372e333531 -> \"153.7\\0$\"\n\nwhich is the tail of the same VERSION_EXT string. This points at a late\nVERSION_EXT response writing through a stale stack-backed data_buf after\nthe interrupted wait returned.\n\nAfter cancelling pending commands on an interrupted or timed-out wait,\ndetach the caller-owned data buffer from the still-current command. This\npreserves the existing command cancellation behaviour while preventing a\nlate response from writing through a pointer whose lifetime ended with the\nwaiting caller.\n\nTested on an i.MX8MP board using an 88W8997."}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","baseScore":7.8,"baseSeverity":"HIGH"},"scenarios":[{"lang":"en","value":"AV:L - The stale data_buf write is reached from local cfg80211/nl80211 and debugfs paths that call mwifiex_send_cmd(..., sync) and sleep in mwifiex_wait_queue_complete(), not from parsing received 802.11 frames, so this is a local syscall/ioctl issue rather than an adjacent RF or remote network vector.\nAC:L - The attacker issues a synchronous mwifiex command and signals the waiting thread (or races a second nl80211 dump against an in-flight command); cancel_all_pending_cmd() intentionally leaves curr_cmd queued for the firmware reply, so the late write-through data_buf does not depend on an uncontrolled race or layout.\nPR:L - NL80211_CMD_GET_STATION is unprivileged and still sends sync firmware commands whose interrupted wait runs mwifiex_cancel_all_pending_cmd() against curr_cmd; remain-on-channel and other cfg80211 ops need only CAP_NET_ADMIN, which is a low-privileged local role on mwifiex phones, Chromebooks, and embedded boards rather than init-namespace root.\nUI:N - The attacker performs the nl80211 or debugfs request and delivers the interrupting signal themselves; no separate victim action such as mounting a filesystem or opening a file is required.\nS:U - The corruption hits host kernel stack or heap in the mwifiex command-response path and stays within the same kernel security authority, yielding local privilege escalation or a host panic rather than a VM, IOMMU, or sandbox escape.\nC:H - A late firmware response memcpy's through the dangling cmd_node->data_buf into reused kernel stack (VERSION_EXT copies 128 bytes) or a kfree'd testmode hostcmd buffer (up to 2048 bytes), a use-after-free write that can be reclaimed for arbitrary kernel read.\nI:H - The same stale-pointer write smashes kernel stack frames or a freed heap object, which is exploitable for control-flow hijacking; the observed VERSION_EXT ASCII overwrite already tripped the stack protector.\nA:H - The bug was observed as a kernel paging fault and stack-protector panic (cmd_wait_q terminated: -512, Kernel panic - not syncing: stack-protector: Kernel stack is corrupted), which is a full host availability loss."}]}],"affected":[{"product":"Linux","vendor":"Linux","defaultStatus":"unaffected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/marvell/mwifiex/sta_ioctl.c"],"versions":[{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"8c67b8c50286e0cb7f18d667e6a37a2ec6e08ff9","status":"affected","versionType":"git"},{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"9024c7729eb523cf4f3a4203966d3a4aaabf030d","status":"affected","versionType":"git"},{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"9e06c9c8a1f10c55d9bc5d139656d58795e64483","status":"affected","versionType":"git"},{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"f2134d6ff30cd6e1bf63d6b0a5d8e0839f0168b3","status":"affected","versionType":"git"},{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"20ee9c03f261bf6ac59331e2ca7b46b23646412a","status":"affected","versionType":"git"},{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"b1bbeb8970eeb6c6bf3cd5314138103f7b69446d","status":"affected","versionType":"git"},{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"d29a165588b6a0cf7a38db5cbd602aef7ef8c658","status":"affected","versionType":"git"},{"version":"3d026d09b28dda24777129a931634949c75a9181","lessThan":"ef06882c7d8a7400b67d0d003b1008093dd589ed","status":"affected","versionType":"git"}]},{"product":"Linux","vendor":"Linux","defaultStatus":"affected","repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["drivers/net/wireless/marvell/mwifiex/sta_ioctl.c"],"versions":[{"version":"3.15","status":"affected"},{"version":"0","lessThan":"3.15","status":"unaffected","versionType":"semver"},{"version":"5.10.270","lessThanOrEqual":"5.10.*","status":"unaffected","versionType":"semver"},{"version":"5.15.221","lessThanOrEqual":"5.15.*","status":"unaffected","versionType":"semver"},{"version":"6.1.188","lessThanOrEqual":"6.1.*","status":"unaffected","versionType":"semver"},{"version":"6.6.157","lessThanOrEqual":"6.6.*","status":"unaffected","versionType":"semver"},{"version":"6.12.109","lessThanOrEqual":"6.12.*","status":"unaffected","versionType":"semver"},{"version":"6.18.50","lessThanOrEqual":"6.18.*","status":"unaffected","versionType":"semver"},{"version":"7.2.4","lessThanOrEqual":"7.2.*","status":"unaffected","versionType":"semver"},{"version":"7.3-rc1","lessThanOrEqual":"*","status":"unaffected","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"5.10.270"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"5.15.221"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"6.1.188"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"6.6.157"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"6.12.109"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"6.18.50"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"7.2.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"3.15","versionEndExcluding":"7.3-rc1"}]}]}],"references":[{"url":"https://git.kernel.org/stable/c/8c67b8c50286e0cb7f18d667e6a37a2ec6e08ff9"},{"url":"https://git.kernel.org/stable/c/9024c7729eb523cf4f3a4203966d3a4aaabf030d"},{"url":"https://git.kernel.org/stable/c/9e06c9c8a1f10c55d9bc5d139656d58795e64483"},{"url":"https://git.kernel.org/stable/c/f2134d6ff30cd6e1bf63d6b0a5d8e0839f0168b3"},{"url":"https://git.kernel.org/stable/c/20ee9c03f261bf6ac59331e2ca7b46b23646412a"},{"url":"https://git.kernel.org/stable/c/b1bbeb8970eeb6c6bf3cd5314138103f7b69446d"},{"url":"https://git.kernel.org/stable/c/d29a165588b6a0cf7a38db5cbd602aef7ef8c658"},{"url":"https://git.kernel.org/stable/c/ef06882c7d8a7400b67d0d003b1008093dd589ed"}],"title":"wifi: mwifiex: Detach sync cmd buffer on interrupted wait","x_generator":{"engine":"bippy-1.2.0"}}}}