{"id":28620,"date":"2026-09-25T04:31:29","date_gmt":"2026-09-24T20:31:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93805"},"modified":"2026-09-25T04:31:29","modified_gmt":"2026-09-24T20:31:29","slug":"cve-2026-93805","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-93805","title":{"rendered":"CVE-2026-93805 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nwifi: cfg80211: valid"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: cfg80211: validate rx\/tx MLME callback frame lengths before access<\/p>\n<p>cfg80211_rx_mlme_mgmt() and cfg80211_tx_mlme_mgmt() call tracepoints<br \/>\nbefore rejecting frames shorter than the frame-control field. After<br \/>\nthat, they only require len &gt;= 2 before dispatching into subtype<br \/>\nhandlers that assume their fixed fields are present.<\/p>\n<p>The frames that trip this are not shorter than 2 bytes; they are short<br \/>\nrelative to their subtype. mwifiex is a concrete in-tree example on the<br \/>\nlength side: mwifiex_process_mgmt_packet() only requires a 4-address<br \/>\nieee80211_hdr plus the 2-byte firmware length prefix before handing the<br \/>\nframe to cfg80211_rx_mlme_mgmt(). After stripping the length prefix and<br \/>\nremoving addr4, pkt_len can be exactly 24: a bare 3-address management<br \/>\nheader with no reason-code body. The existing WARN_ON(len &lt; 2) does not<br \/>\nfire on such a frame, and cfg80211_process_deauth() then reads<br \/>\nu.deauth.reason_code as a two-byte access starting at offset 24,<br \/>\nimmediately past the 24-byte buffer.<\/p>\n<p>Add a frame-control length gate, then validate each subtype&#039;s minimum<br \/>\nframe size in an if\/else-if chain that mirrors the dispatch logic. Trace<br \/>\nonly after the frame is known to be well-formed.<\/p>\n<p>Side effects of this change:<br \/>\n &#8211; The WARN_ON(len = 2).<br \/>\n   The len &gt;= 2 check is kept as the guard before dereferencing<br \/>\n   frame_control, but without the warning: these are exported callbacks<br \/>\n   and a malformed frame from a driver should be dropped silently rather<br \/>\n   than backtraced.<br \/>\n &#8211; cfg80211_tx_mlme_mgmt() previously routed every non-deauth subtype<br \/>\n   through disassociation handling; it now silently ignores unrecognised<br \/>\n   subtypes.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>wifi: cfg80211: validate rx\/tx MLME callback frame lengths before access<\/p>\n<p>cfg80211_rx_mlme_mgmt() and cfg80211_tx_mlme_mgmt() call <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-28620","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/28620","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=28620"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=28620"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=28620"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}