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

spi: imx: reconfigure for PIO when DMA cannot be started

When spi_imx_can_dma() selects DMA, the ECSPI is configured for DMA:
spi_imx_setupxfer() sets CTRL.SMC and clears dynamic_burst, and
spi_imx_dma_transfer() programs the dynamic-burst BURST_LENGTH and the
SDMA watermarks.

If the DMA descriptor cannot be prepared (dmaengine_prep_slave_single()
returns NULL), the transfer is failed with SPI_TRANS_FAIL_NO_START and
falls back to PIO. The dynamic-burst DMA path uses its own bounce
buffers instead of the SPI core's mapping, so xfer->{tx,rx}_sg_mapped
are not set and the core's DMA->PIO retry is skipped; the driver falls
back to PIO internally. But none of the DMA-mode configuration is
undone, so the PIO transfer runs with CTRL.SMC set, the wrong burst
length and dynamic_burst cleared, and the transferred data is corrupted.

This is easily hit on i.MX8MP boards that describe ECSPI DMA in the
device tree but run SDMA on ROM firmware (no external sdma-imx7d.bin):
every ECSPI DMA prepare fails. An Infineon SLB9670 TPM on ECSPI1 then
returns shifted TPM2_GetCapability data, is flagged "field failure
mode", /dev/tpmrm0 is never created.

Set controller->fallback before re-running spi_imx_setupxfer() so the
ECSPI is reconfigured exactly like a normal PIO transfer. With
controller->fallback set, spi_imx_setupxfer() sees spi_imx_can_dma()
return false, so it clears spi_imx->usedma and reprograms the controller
(clears CTRL.SMC, restores dynamic_burst and the PIO burst length). No
explicit spi_imx->usedma = false is needed: setupxfer() already updates
it from the can_dma() result.
Published: 2026-08-15
Score: 7.8 High
EPSS: < 1% Very Low
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

When the imx SPI driver attempts a DMA transfer but the DMA preparation fails, it leaves the controller configured for DMA, including a mis‑set burst length and a cleared dynamic burst flag. The driver then internally falls back to PIO, but the DMA‑only settings remain active, so subsequent PIO transfers use an incorrect register state and produce corrupted data. This corruption can cause malfunction of devices such as TPMs, leading to integrity violations in applications that depend on accurate SPI communication.

Affected Systems

The flaw affects the Linux kernel’s imx SPI driver on i.MX platforms that expose ECSPI DMA entries in the device tree but lack a functional SDMA controller. Typical affected hosts include i.MX8MP boards and other i.MX8 family devices running legacy ROM firmware without an SDMA binary, as well as systems that connect Infineon SLB9670 TPMs to ECSPI1. Any Linux kernel containing the unpatched imx SPI driver that runs on such hardware will experience corrupted SPI transfers after a DMA‑initialisation failure.

Risk and Exploitability

The issue manifests only when a DMA transaction prepares unsuccessfully on hardware that reports DMA capability, so the attack surface is limited to the local machine or a system with privileged access to the kernel. The CVSS score is 7.8 and the EPSS score is < 1%, indicating a moderate severity but low likelihood of exploitation. There is no remote exploitation vector and the flaw is not listed in the CISA KEV catalog, suggesting no confirmed exploitation. Nevertheless, devices that rely on SPI for security‑critical operations should consider the kernel update as a priority.

Generated by OpenCVE AI on August 18, 2026 at 20:27 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Update the kernel to a version that includes the fix for CVE-2026-72134 (e.g., the latest stable release or apply the specific commit 245404c26563aafb36aafb01298f148db1851be3).
  • If a kernel update is not possible, edit the device tree to remove or comment out ECSPI DMA nodes so that the driver never attempts DMA initialisation and uses PIO exclusively.
  • Apply a local patch that explicitly sets controller->fallback before re‑running spi_imx_setupxfer, ensuring the controller is correctly reconfigured for PIO after a DMA failure.

Generated by OpenCVE AI on August 18, 2026 at 20:27 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Tue, 18 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-391
CWE-665

Tue, 18 Aug 2026 12:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-909
References
Metrics threat_severity

None

threat_severity

Moderate


Mon, 17 Aug 2026 20:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-391
CWE-665

Mon, 17 Aug 2026 18:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-571
CWE-606

Mon, 17 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Metrics cvssV3_1

{'score': 7.8, 'vector': 'CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H'}


Sat, 15 Aug 2026 09:00:00 +0000

Type Values Removed Values Added
Weaknesses CWE-571
CWE-606

Sat, 15 Aug 2026 06:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: spi: imx: reconfigure for PIO when DMA cannot be started When spi_imx_can_dma() selects DMA, the ECSPI is configured for DMA: spi_imx_setupxfer() sets CTRL.SMC and clears dynamic_burst, and spi_imx_dma_transfer() programs the dynamic-burst BURST_LENGTH and the SDMA watermarks. If the DMA descriptor cannot be prepared (dmaengine_prep_slave_single() returns NULL), the transfer is failed with SPI_TRANS_FAIL_NO_START and falls back to PIO. The dynamic-burst DMA path uses its own bounce buffers instead of the SPI core's mapping, so xfer->{tx,rx}_sg_mapped are not set and the core's DMA->PIO retry is skipped; the driver falls back to PIO internally. But none of the DMA-mode configuration is undone, so the PIO transfer runs with CTRL.SMC set, the wrong burst length and dynamic_burst cleared, and the transferred data is corrupted. This is easily hit on i.MX8MP boards that describe ECSPI DMA in the device tree but run SDMA on ROM firmware (no external sdma-imx7d.bin): every ECSPI DMA prepare fails. An Infineon SLB9670 TPM on ECSPI1 then returns shifted TPM2_GetCapability data, is flagged "field failure mode", /dev/tpmrm0 is never created. Set controller->fallback before re-running spi_imx_setupxfer() so the ECSPI is reconfigured exactly like a normal PIO transfer. With controller->fallback set, spi_imx_setupxfer() sees spi_imx_can_dma() return false, so it clears spi_imx->usedma and reprograms the controller (clears CTRL.SMC, restores dynamic_burst and the PIO burst length). No explicit spi_imx->usedma = false is needed: setupxfer() already updates it from the can_dma() result.
Title spi: imx: reconfigure for PIO when DMA cannot be started
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-08-17T05:40:44.407Z

Reserved: 2026-08-09T03:40:39.907Z

Link: CVE-2026-72134

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-08-15T06:21:30.880

Modified: 2026-08-17T06:18:13.150

Link: CVE-2026-72134

cve-icon Redhat

Severity : Moderate

Publid Date: 2026-08-15T00:00:00Z

Links: CVE-2026-72134 - Bugzilla

cve-icon OpenCVE Enrichment

Updated: 2026-08-18T20:30:17Z

Weaknesses
  • CWE-909

    Missing Initialization of Resource