Skip to content
VulniPulse
Advisory severityHigh7.0Vendor: MediumRed Hat Linux

High [CVE-2026-63883] fix kfifo underflow when flush precedes DMA completion IRQ

This high-severity Red Hat Linux advisory covers CVE-2026-63883 affecting Red Hat Enterprise Linux 10, Red Hat package: kernel.

Aggregated and source-linked by VulniPulse. Data sources, validation and limitations.

CVE-2026-63883 Source published Source updated

VulniPulse record published Record updated

CVE-2026-63883
Affected products & platforms
Red Hat LinuxLinux Kernel
Open source advisory

Get an email when Red Hat Linux Linux Kernel publishes the next one.

See Red Hat Linux Linux Kernel's last 90 days of advisories first. Then choose one product with live alerts free for life, or a free month of real-time alerts on everything with the severity, the fixed version and the vendor's link (card needed, then US$15/month; we email you before the first charge).

Alert me about Red Hat Linux Linux Kernel

Summary

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.

A race condition can occur when the uart_flush_buffer() function executes before the Direct Memory Access (DMA) completion interrupt is processed.

Affected versions

No affected-version range was extracted from the source record. The vendor advisory is authoritative. Check it before change work.

Official advisory · medium-confidence parse· fetched 7 days ago·verify at source

Fixed versions

No fixed release is recorded yet. That does not prove no patch exists. Confirm against the vendor advisory.

Official advisory · medium-confidence parse· fetched 7 days ago·verify at source

Mitigation

The source record does not include mitigation steps. That does not mean no fix exists. Read the vendor advisory below for the authoritative guidance.

Official advisory · medium-confidence parse· fetched 7 days ago·verify at source

All Red Hat Linux advisories

iPhone and Android apps · New on the App Store

Monitor future Red Hat Linux CVEs from your phone.

Choose a whole vendor or a precise platform, then receive matching security advisories by phone notification, email, or both. Coverage follows 34 official vendor sources and 160+ reviewed platform categories.

Discussion(0)

No comments yet. Share field notes, upgrade gotchas, or questions — verify against the vendor advisory before acting on community advice.

Sign in to join the discussion.