CVE-2026-90090 in Linux
Sumário
de VulDB • 18/09/2026
No kernel do Linux, a seguinte vulnerabilidade foi corrigida:
Bluetooth: btmtksdio: Corrige leitura DMA fora dos limites no caminho de TX (transmissão)
btmtksdio_tx_packet() arredonda o tamanho da transferência para cima até o tamanho do bloco SDIO de 256 bytes, mas passa o buffer SKB ao controlador host como está:
err = sdio_writesb(bdev->func, MTK_REG_CTDR, skb->data, round_up(skb->len, MTK_SDIO_BLOCK_SIZE));
Apenas os bytes em `skb->len` contêm dados do pacote; portanto, o controlador lê até 256 bytes de memória não inicializada e os envia para o dispositivo através da barramento SDIO. Dependendo de quanto espaço extra (tailroom slack) a alocação SKB possuir por acaso, essa leitura também pode se estender além do final do buffer.
Calcule o comprimento com preenchimento antecipadamente, garanta que o SKB tenha tailroom suficiente para ele e preencha o padding com zeros usando `skb_put_zero()`. O campo `skb->len` então cobre o padding, de modo que `sdio_writesb()` não precisa mais arredondar para cima. A variável `byte_tx` continua contando apenas o cabeçalho e a carga útil (payload), e o caminho de erro restaura o SKB para que o chamador possa reencaminhá-lo na fila.
Escrever atrás do ponteiro `skb->tail` é seguro porque o driver possui exclusividade sobre o buffer, conforme garantido por "Bluetooth: btmtksdio: Take exclusive ownership of the SKB before TX".
If you want to get best quality of vulnerability data, you may have to visit VulDB.