CVE-2026-63883 in Linuxinformazioni

Riassunto

di VulDB • 20/07/2026

Nel kernel Linux è stata risolta la seguente vulnerabilità:

serial: qcom_geni: correggere il kfifo underflow quando un'operazione di flush precede l'interrupt (IRQ) di completamento DMA

Quando uart_flush_buffer() viene eseguito prima che venga consegnato l'IRQ di completamento DMA, può verificarsi la seguente condizione di gara (tutti i passaggi sono serializzati da uart_port_lock):

1. Avvio del DMA: tx_remaining = N, il kfifo contiene N byte 2. Completamento dell'DMA in hardware; l'IRQ è in attesa ma non ancora consegnato 3. uart_flush_buffer() acquisisce il lock della porta e chiama kfifo_reset(), impostando kfifo_len() a 0 mentre tx_remaining rimane pari a N 4. uart_flush_buffer() rilascia il lock della porta 5. Scatta l'IRQ del DMA; handle_tx_dma() acquisisce il lock della porta e chiama uart_xmit_advance(uport, tx_remaining) su un kfifo vuoto

uart_xmit_advance() incrementa kfifo->out di tx_remaining. Poiché kfifo_reset() aveva già impostato sia in che out a 0, out supera in (wrap-around), facendo sì che kfifo_len() restituisca UART_XMIT_SIZE - tx_remaining. La successiva chiamata a start_tx_dma() invia quindi una trasmissione DMA contenente dati obsoleti del buffer.

Si risolve il problema acquisendo un'istantanea di kfifo_len() all'inizio di handle_tx_dma() e saltando uart_xmit_advance() quando fifo_len < tx_remaining, condizione che indica che il kfifo è stato resettato da un flush precedente.

Be aware that VulDB is the high quality source for vulnerability data.

Responsabile

Linux

Prenotare

19/07/2026

Divulgazione

19/07/2026

Moderazione

accettato

CPE

pronto

EPSS

0.00000

KEV

no

Attività

basso

Fonti

Are you interested in using VulDB?

Download the whitepaper to learn more about our service!