Description
In the Linux kernel, the following vulnerability has been resolved:

serial: 8250: Fix TX deadlock when using DMA

`dmaengine_terminate_async` does not guarantee that the
`__dma_tx_complete` callback will run. The callback is currently the
only place where `dma->tx_running` gets cleared. If the transaction is
canceled and the callback never runs, then `dma->tx_running` will never
get cleared and we will never schedule new TX DMA transactions again.

This change makes it so we clear `dma->tx_running` after we terminate
the DMA transaction. This is "safe" because `serial8250_tx_dma_flush`
is holding the UART port lock. The first thing the callback does is also
grab the UART port lock, so access to `dma->tx_running` is serialized.
Published: 2026-05-05
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

A flaw in the Linux 8250 serial driver prevents the DMA transmission flag from being cleared when a DMA operation is cancelled and its completion callback does not run. The flag remains set and subsequent DMA transmit requests are blocked, causing the UART port to hang. This defect does not grant privilege escalation or remote code execution; it merely disrupts serial output, which can impact management, diagnostics, or boot processes that rely on UART communication.

Affected Systems

The affected product is the Linux kernel’s 8250 UART serial driver. No specific kernel version ranges are enumerated, so any kernel build containing the driver before the patch that clears the TX flag is potentially vulnerable. The fix is present in the mainline kernel repository and is referenced by several commit URLs. Administrators should verify that their running kernel includes the commit sequence that implements the clearing of the DMA running flag or consider upgrading to a patched kernel.

Risk and Exploitability

The vulnerability requires a local or privileged user to trigger a DMA cancellation on an UART device, so the attack surface is limited to physical or compromised systems with control over the serial driver. There is no publicly reported exploitation and the EPSS score is unavailable, indicating low likelihood of exploitation. The impact is service disruption rather than data compromise. Because the defect is confined to UART instances using DMA, the risk is moderate: an attacker could cause a denial of service but would not gain further privileges or exfiltrate data. The vulnerability is not listed in CISA’s KEV catalog.

Generated by OpenCVE AI on May 5, 2026 at 17:52 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the Linux kernel to a version that includes the commit adding the clear of dma->tx_running after DMA termination (the patched commits are available in the kernel repository).
  • If an update is not immediately possible, rebuild the kernel with the CONFIG_SERIAL_8250_DMA configuration option disabled or remove the DMA property for the affected UART devices in the device tree to prevent DMA usage entirely.
  • Enable and monitor system logs for UART TX stall or failure messages; consider configuring watchdog timers that reset the system if serial communication ceases to ensure continuity of critical management access.

Generated by OpenCVE AI on May 5, 2026 at 17:52 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 05 May 2026 18:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-668

Tue, 05 May 2026 16:15:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: serial: 8250: Fix TX deadlock when using DMA `dmaengine_terminate_async` does not guarantee that the `__dma_tx_complete` callback will run. The callback is currently the only place where `dma->tx_running` gets cleared. If the transaction is canceled and the callback never runs, then `dma->tx_running` will never get cleared and we will never schedule new TX DMA transactions again. This change makes it so we clear `dma->tx_running` after we terminate the DMA transaction. This is "safe" because `serial8250_tx_dma_flush` is holding the UART port lock. The first thing the callback does is also grab the UART port lock, so access to `dma->tx_running` is serialized.
Title serial: 8250: Fix TX deadlock when using DMA
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-05-05T15:17:27.079Z

Reserved: 2026-05-01T14:12:55.981Z

Link: CVE-2026-43061

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-05-05T16:16:15.210

Modified: 2026-05-05T16:16:15.210

Link: CVE-2026-43061

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-05-05T18:00:13Z

Weaknesses