CVE-2026-99164
In the Linux kernel, the following vulnerability has been resolved: spi: imx: fix slab corruption from undersized DMA bounce buffers Since commit faa8e404ad8e ("spi: imx: support dynamic burst length for ECSPI DMA mode"), the driver allocates its private DMA TX/RX buffers with kzalloc(dma_len), where dma_len is only rounded up to 4 bytes, but maps, syncs and unmaps them with DMA_CACHE_ALIGNED_LEN(dma_len), i.e. rounded up to the cache line size. As a result, the DMA API operates on memory beyond the end of the allocation. This was observed on a custom i.MX8MP platform with an mcp251xfd CAN controller under heavy RPMSG load, as a series of refcount_t warnings triggered from rpmsg_recv_done() in virtio_rpmsg_bus: refcount_t: addition on 0; use-after-free. refcount_t: underflow; use-after-free. refcount_t: saturated; leaking memory. Leading finally to an "Unable to handle kernel paging request" oops. Reproducing this problem took between 30 minutes and roughly 30 hours under the same workload. Hardware watchpoints on the refcount of a struct rpmsg_endpoint showed it was overwritten from 2 to 1 by __pi_memcpy_generic() in the irq/155-spi2.0 thread. Additionally it was found that a "normal" rpmsg_recv_done() took 11µs +/-2µs from its kref_get to kref_put. In the error case the same sequence took about 215µs +/-10µs. Based on this, an LLM was used to identify the size mismatch fixed here. Allocate the buffers with DMA_CACHE_ALIGNED_LEN(dma_len) so they cover the full mapped length, and use the same length for dma_sync_single_for_cpu() to stay consistent with map and unmap. With this patch applied, the same workload ran for more than 200 hours without the problem reproducing.
Executive briefing
This record describes a reported software or hardware weakness. The description and CVSS rating are source metadata; practical risk depends on whether your environment uses an affected product/version and whether the vulnerable component is reachable and configured in an exploitable way.
Severity & exploitability
CVSS vector: CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H
Impacted products and platforms
Specific affected product configurations are not currently available in the NVD record. Review vendor advisories and validate applicability against your asset inventory.
How it works and what it could affect
The NVD description is the authoritative short summary currently available for this record. A detailed technical mechanism is not inferred when the source record does not provide one.
Review the CVSS attack characteristics above to understand whether exploitation is network/local, whether privileges or user interaction are required, and which confidentiality, integrity or availability impacts are scored.
Remediation and recommended response
- Identify exposure: compare the affected product and version ranges below with your asset inventory, software bill of materials, endpoint inventory and externally exposed services.
- Remediate: review the linked vendor security advisory or patch notes, upgrade to a fixed release, or apply the vendor-provided workaround if an upgrade cannot be completed.
- Mitigate while patching: restrict network access to the vulnerable service, disable the affected feature where operationally safe, and monitor vendor/CERT advisories for updated guidance.
- Validate: confirm the fixed version or mitigation on representative systems, run a vulnerability rescan, and retain change evidence.
No vendor remediation link has been identified in the available NVD references yet. Check the affected vendor's security advisory portal before applying changes.
Exploit intelligence & references
No CISA KEV match is recorded in the latest successful catalog refresh. This is not a guarantee that public proof-of-concept code or exploitation does not exist.
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67 reference
- 416baaa9-dc9f-4396-8d5f-8c081fb06d67 reference
Sources: NVD and CISA KEV when available. Vendor confirmation remains the final authority for fixed versions and workarounds.