No kernel Linux, a seguinte vulnerabilidade foi resolvida. spi: xilinx: use o registro de ocupação FIFO para determinar o tamanho do buffer O método que o driver usa para determinar o tamanho do FIFO tem um problema. O que ele faz atualmente é isto: Ele para o hardware SPI e escreve para o registro TX FIFO até que o TX FIFO FULL afirme no registro de estado. Mas o hardware não só tem o FIFO, como também tem um registro de turnos que pode segurar um byte. Isto pode ser visto, ao escrever um byte para o FIFO (quando o hardware SPI é parado), o EMPTY do TX FIFO ainda está vazio. Então, se tivermos um tamanho FIFO de 16 por exemplo, o método atual retorna um 17. Este é um problema, pelo menos quando se usa o driver no modo irq. O mesmo tamanho determinado para o TX FIFO também é assumido para o RX FIFO. Quando uma transação SPI quer escrever a quantidade do tamanho FIFO ou mais bytes, acontece o seguinte, por exemplo com 16 bytes Tamanho FIFO: O driver para o hardware SPI e escreve 17 bytes para o TX FIFO e inicia o hardware SPI e vai dormir. O hardware então muda para fora 17 bytes (FIFO + registro de turnos) e lê simultaneamente bytes no RX FIFO, mas só tem 16 lugares, então ele perde um byte. Em seguida, o TX FIFO vazio afirma, acorda o driver novamente, que tem um caminho rápido e lê 16 bytes do RX FIFO, mas antes de ler o último 17 o byte (que está perdido) faz isso:.
sr = xspi->read_fn(xspi->regs + XSPI_SR_OFFSET); se (!(sr & XSPI_SR_RX_ EMPTY_MASK)) { xilinx_spi_rx(xspi); rx_words--; } Ele lê o registro de estado e verifica se o RX FIFO não está vazio. Mas está vazio no nosso caso. Então esta verificação gira em um loop de tempo para sempre bloqueando o driver.
Este patch corrige a lógica para determinar o tamanho da FIFO. Registro de aconselhamento: GHSA- h 2 g 9 - c 4 gr-qg 58. Identificadores relacionados: CVE- 2026 - 74276.
Tempo: GitHub Advisory Database publicou este registro em 2026 - 08 - 15 T 06: 32: 27.000 Z e lista a sua última modificação como 2026 - 08 - 15 T 06: 32: 27.000 Z. Severidade: não classificado. Nenhum vetor de pontuação está listado no registro.
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.