CVE-2026-63883

serial: qcom_geni: fix kfifo underflow when flush precedes DMA completion IRQ

HIGH
7.3
CVSS Score
Published: July 19, 2026 at 02:54 PM UTC
Updated: August 5, 2026 at 01:24 PM UTC
1 product affected across 1 vendorLinux Kernel

Using Linux by Linux?

Get instant alerts when new vulnerabilities affect Linux - before attackers find them.

Real-time alertsTrack your software stackFree plan available
Severity
HIGH7.3
Exploit prediction
EPSS 0.2%

Description

In the Linux kernel, the following vulnerability has been resolved: serial: qcom_geni: fix kfifo underflow when flush precedes DMA completion IRQ When uart_flush_buffer() runs before the DMA completion IRQ is delivered, the following race can occur (all steps serialized by uart_port_lock): 1. DMA starts: tx_remaining = N, kfifo contains N bytes 2. DMA completes in hardware; IRQ is pending but not yet delivered 3. uart_flush_buffer() acquires the port lock and calls kfifo_reset(), making kfifo_len() = 0 while tx_remaining remains N 4. uart_flush_buffer() releases the port lock 5. DMA IRQ fires; handle_tx_dma() acquires the port lock and calls uart_xmit_advance(uport, tx_remaining) on an empty kfifo uart_xmit_advance() increments kfifo->out by tx_remaining. Since kfifo_reset() already set both in and out to 0, out wraps past in, causing kfifo_len() to return UART_XMIT_SIZE - tx_remaining. The next start_tx_dma() call then submits a DMA transfer of stale buffer data. Fix this by snapshotting kfifo_len() at the start of handle_tx_dma() and skipping uart_xmit_advance() when fifo_len < tx_remaining, which indicates the kfifo was reset by a preceding flush.

Affected

Our own answer: ranges merged, affected separated from platform-only, with confidence and review flags.

6.3 ≤ v < 6.12.936.3 ≤ v < 6.18.356.3 ≤ v < 6.6.1436.3 ≤ v < 7.0.126.3 ≤ v < 7.12aaa43c7077833301c237684cd7bc9ae5e3dec956.3
Vendor states this is fixed in 0d2c41a8b00934ddf8a7c1b4cf72dffa1e629c46 (fixed)
Vendor states this is fixed in 452d6fa37ae9b021f4f6d397dbae077f7296f6f4 (fixed)
Vendor states this is fixed in 654f45a8569f3cd6ff20bd724a18e0cce65893ba (fixed)
Vendor states this is fixed in b1159dce10b38eb795e4c96cdc4d34b83cec81c5 (fixed)
Vendor states this is fixed in c91ea13375f70f6271a0183445e34e83b8f4d8f7 (fixed)
Vendor states this is fixed in 6.12.93 (unaffected)
Vendor states this is fixed in 6.18.35 (unaffected)
Vendor states this is fixed in 6.3 (unaffected)
Vendor states this is fixed in 6.6.143 (unaffected)
Vendor states this is fixed in 7.0.12 (unaffected)
Vendor states this is fixed in 7.1 (unaffected)

Remediation

No guide yet

No remediation guidance has been written for this CVE yet, and no fixed version or vendor advisory is recorded against it.

CVSS

7.3HIGHLinux
Vector?

Quick Info

StatusAWAITING ANALYSIS

Get alerted

Stop reading CVE feeds looking for your own stack

Track the products you run and VulnTracker tells you when a new CVE affects them — with what is known about fixing it, and nothing about the rest.

Free plan, no card