In the Linux kernel, the following vulnerability has been resolved:
serial: qcom_geni: fix kfifo underflow when flush precedes DMA completion IRQ
When uartflushbuffer() runs before the DMA completion IRQ is delivered, the following race can occur (all steps serialized by uartportlock):
uartxmitadvance() increments kfifo->out by txremaining. Since kfiforeset() already set both in and out to 0, out wraps past in, causing kfifolen() to return UARTXMITSIZE - txremaining. The next starttxdma() call then submits a DMA transfer of stale buffer data.
Fix this by snapshotting kfifolen() at the start of handletxdma() and skipping uartxmitadvance() when fifolen < tx_remaining, which indicates the kfifo was reset by a preceding flush.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/63xxx/CVE-2026-63883.json",
"cna_assigner": "Linux"
}