CVE-2026-90012

CVE-2026-90012

Critical · published September 16, 2026

CVSS v3.1
9.8
EPSS
1%
Percentile
49.3
In the wild
Unconfirmed
What it is

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

spi: Fix DMA mapping ownership on partial map failure

If RX mapping fails after TX mapping succeeds, __spi_map_msg() unmaps

TX but leaves tx_sg_mapped set. If TX mapping fails on a later

transfer, mappings created for earlier transfers remain active.

In both cases, cur_{tx,rx}_dma_dev have not yet been updated because they

are assigned only after every transfer has been mapped. The subsequent

spi_unmap_msg() may therefore unmap the TX mapping again or release

earlier mappings using a NULL or stale device. Using a NULL device can

trigger an oops. An empty SG table does not prevent the NULL dereference

because dma_unmap_sg_attrs() accesses the device before checking the

entry count.

Publish both mapping devices before mapping starts and unwind all

failures through __spi_unmap_msg(). This clears the mapping flags and

releases each mapping once with the device that created it.

Publishing the devices before the loop also refreshes them when no

transfer needs mapping. No mapping flag is set in that case, so current

users do not use the pointers as mapping owners.

The record
Technical detail
CVSS v3.1
9.8 · CRITICAL
Vector
CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H
CVSS v4.0
Not supplied
EPSS
0.00626 · 49.3th percentile
Published
2026-09-16T15:17Z
References (4)
EPSS history
Timeline
  • 18 SEP 04:02Z
    EPSS moved — → 1%
    epss
  • 16 SEP 10:33Z
    spi: Fix DMA mapping ownership on partial map failure
    cvelistv5