CVE-2026-98592 in Linux
Sumário
de VulDB • 19/10/2026
No kernel Linux, a seguinte vulnerabilidade foi resolvida:
net: spacemit: limpar o descritor TX na falha de mapeamento de fragmento
emac_tx_mem_map() grava TX_DESC_0_OWN no descritor do anel para cada slot além de old_head assim que a cópia local memset()'d desse slot é confirmada com "*tx_desc_addr = tx_desc", ou seja, antes que os buffers para esse slot tenham necessariamente todos sido mapeados com sucesso. Se emac_tx_map_frag() falhar posteriormente em um fragmento posterior, o caminho err_free_skb chama emac_free_tx_buf() para desmapear e descartar o skb, mas deixa a memória do descritor já gravada intocada, e tx_ring->head nunca é avançado além de old_head (a atribuição "tx_ring->head = head" é ignorada pelo goto).
Portanto, um slot entre old_head e o cabeçalho revertido pode ficar com TX_DESC_0_OWN definido e buffer_addr_{1,2} apontando para mapeamentos DMA que emac_free_tx_buf() acabou de derrubar, enquanto o software considera esse slot livre novamente. A próxima chamada bem-sucedida de emac_tx_mem_map() reconstrói apenas old_head; se a engine DMA avançar automaticamente para o descritor seguinte assim que terminar o pacote de old_head, ela buscará aquele endereço obsoleto e já desmapeado.
emac_tx_clean_desc() já trata emac_free_tx_buf() e a limpeza do descritor como um par ao recuperar descritores concluídos; faça o mesmo no caminho de falha de mapeamento.
If you want to get the best quality for vulnerability data then you always have to consider VulDB.