spi: fsl-lpspi: terminate the RX channel on TX prepare failure path
- Published
- Last modified
- Where the record stands: published, rejected by its publisher, or superseded by another id.What do these mean? →
- published
- Whether CISA lists it in its Known Exploited Vulnerabilities catalog: proof that attackers are using it.What do these mean? →
- Not listed in CISA KEV
- Fix
- Fixed in 5.10.261, 5.15.212, 6.1.178, 6.6.145, 6.12.96, and 2 more
- Whether working attack code is public (Exploit-DB, Metasploit, Nuclei or GitHub). Public code makes attacks easier.What do these mean? →
- None on Exploit-DB, Metasploit or GitHub
- Exploitation: none
- Automatable: yes
- Technical impact: total
Summary
In the Linux kernel, the following vulnerability has been resolved: spi: fsl-lpspi: terminate the RX channel on TX prepare failure path When dmaengine_prep_slave_sg() fails for the TX channel, the error path terminates the TX DMA channel but leaves the RX channel running. Since the RX channel was already submitted and issued prior to preparing the TX descriptor, returning -EINVAL causes the SPI core to unmap the DMA buffers while the RX DMA engine continues writing to them, leading to potential memory corruption or use-after-free. Terminate the RX channel before returning on the TX prepare failure path.
Timeline
- CVE published
- CISA SSVC assessment
Exploitation: none · Automatable: yes · Technical impact: total
- Record last updated
Affected versions
- Linux Linux
From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in ad370d1c7a9a832f77b2341513cd31188c9443af; From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in cce2063404b2341e7b2bbf85eddfcd70a31a0033; From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in af39a2698f69b584d14a00cffe0f51a2caa15337; From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in e65505d91fa036a238968e4c10744244d1b968c4; From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in d5c1060218a3749c8a18b36f8169d910fce20639; From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in 808033d80d5c9f8adf7e8de9317389270ce13430; From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in 9d000bdd250d649a11cd7f733175686877344582; From 09c04466ce7ea494993c0635ba5edb6d2222a806 · fixed in 01980b5da56e573d62798d0ff6c86bcaa2b22cbe
- Linux Linux
5.2
- KernelLinux
From 5.2.0 · fixed in 5.10.261; From 5.11.0 · fixed in 5.15.212; From 5.16.0 · fixed in 6.1.178; From 6.2.0 · fixed in 6.6.145; From 6.7.0 · fixed in 6.12.96; From 6.13.0 · fixed in 6.18.39; From 6.19.0 · fixed in 7.1.4
References 8
git.kernel.org
- stable/c/ad370d1c7a9a832f77b2341513cd31188c9443af
- stable/c/cce2063404b2341e7b2bbf85eddfcd70a31a0033
- stable/c/af39a2698f69b584d14a00cffe0f51a2caa15337
- stable/c/e65505d91fa036a238968e4c10744244d1b968c4
- stable/c/d5c1060218a3749c8a18b36f8169d910fce20639
- stable/c/808033d80d5c9f8adf7e8de9317389270ce13430
- stable/c/9d000bdd250d649a11cd7f733175686877344582
- stable/c/01980b5da56e573d62798d0ff6c86bcaa2b22cbe