No kernel Linux, a seguinte vulnerabilidade foi resolvida. wifi: mwifiex: use o comprimento do sub-quadro quando analisar os quadros TDLS A- MSDU mwifiex_ 11 n_dispatch_amsdu_pkt() divide um A-MSDU com iee 80211 _amsdu_to_ 8023 s() e caminha os subframes resultantes. Para cada sub- frame ele passa o ponteiro de dados do sub- frame para mwifiex_process_tdls_action_frame(), mas o par com skb->len, o comprimento do pai A- MSDU, em vez de rx_skb->len: rx_skb = __skb_dequeue(&list); rx_hdr = (struct rx_packet_hdr *)rx_skb->data; se (ISSUPP_TDLS_ENABLED(priv->adapter->fw_cap_info) && ntohs(rx_hdr->eth 803 == ETH_P_TDLS == { mwifiex_process_tdls_action_frame(priv, (u 8 *)rx_hdr, skb->len); } O pai não é uma descrição válida desse buffer, e pode não ser uma memória válida. ieee 80211 _amsdu_to_ 8023 s() termina com o.

se (!reuse_skb) dev_kfree_skb(skb). e ele só define reuse_skb quando o pai é linear, não é um head_frag, e está sendo consumido como o sub- frame *last*. Assim, quando o pai não se qualifica para reutilizá- lo já foi libertado, e a leitura do skb->len é um uso- depois- livre. Quando reutilizado, skb->len é o comprimento do último sub- frame, aplicado a cada sub- frame anterior, o que sobre- estadia o buffer sempre que um sub- frame anterior é menor. O callo não pode absorver um comprimento errado, porque deriva do seu próprio teto do valor que lhe é dado. Cada tipo de moldura computa ies_len = len - tamanho do(ethdr estrutura) - TDLS_*_ FIX_LEN. e o caminho do elemento é então totalmente limitado a esse teto,.

para (fin = pos + ies_len; pos + 1 < final; pos += 2 + pos[ 1 ]) { u 8 ie_len = pos[ 1 ]; se (pos + 2 + ie_len > fim) quebra. assim, um len muito grande se move termina além do fim do sub- quadro e o passeio lê e copia além dele. O layout A- MSDU é escolhido pelo remetente, o que faz a diferença entre o último sub- quadro e um mais curto selecionável remotamente. Para alcançar isso, é necessário suporte TDLS no firmware e no etertipo TDLS no sub- frame. O outro chamador, mwifiex_process_rx_packet(), está correto: passa por um ponteiro e um comprimento que descrevem a mesma região do buffer RX.

Passe rx_skb->len, o comprimento do sub- quadro sendo analisado. Registro de aconselhamento: GHSA- c 488 -ccg 3 - Sim. Identificadores relacionados: CVE- 2026 - 74488. Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 15 T 15: 30: 34.000 Z e lista a sua última modificação como 2026 - 08 - 19 T 18: 32: 28.000 Z.

Severidade: ALTAMENTE. Dados de pontuação publicados: CVSS_V 3: CVSS: 3.1 /AV:A/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H. Software afetado: o registro de aconselhamento não fornece um pacote normalizado ou faixa de versões. Classificação e evidência: nenhum identificador CWE está listado. O registro contém 9 suporte de referências nestes tipos: AVISO, WEB.