{"apiVersion":"1.0","identifier":"CVE-2026-99164","description":"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.","publishedAt":"2026-10-28T11:17:36","lastModifiedAt":"2026-10-31T13:17:58","sourceUrl":"https://nvd.nist.gov/vuln/detail/CVE-2026-99164","cvssScore":7.8,"cvssVector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H","epssProbability":0.0013,"riskScore":0.79,"affectedProduct":"Linux kernel","affectedVersions":"unknown","vulnerabilityType":"Kernel","operatingSystems":[],"links":{"self":"https://www.redsauce.net/api/cves/CVE-2026-99164","webPages":{"es":"https://www.redsauce.net/es/cves/CVE-2026-99164","en":"https://www.redsauce.net/en/cves/CVE-2026-99164","fr":"https://www.redsauce.net/fr/cves/CVE-2026-99164","pt":"https://www.redsauce.net/pt/cves/CVE-2026-99164","de":"https://www.redsauce.net/de/cves/CVE-2026-99164","sk":"https://www.redsauce.net/sk/cves/CVE-2026-99164","el":"https://www.redsauce.net/el/cves/CVE-2026-99164"},"source":"https://nvd.nist.gov/vuln/detail/CVE-2026-99164"}}