Skip to main content
← All vulnerabilities
CVE-2025-68773

spi: fsl-cpm: Check length parity before switching to 16 bit mode

Published
Last modified
published
Not listed in CISA KEV
Fix
Fixed in 5.10.248, 5.15.198, 6.1.160, 4.15, 4.20, and 6 more
None on Exploit-DB, Metasploit or GitHub

Summary

In the Linux kernel, the following vulnerability has been resolved: spi: fsl-cpm: Check length parity before switching to 16 bit mode Commit fc96ec826bce ("spi: fsl-cpm: Use 16 bit mode for large transfers with even size") failed to make sure that the size is really even before switching to 16 bit mode. Until recently the problem went unnoticed because kernfs uses a pre-allocated bounce buffer of size PAGE_SIZE for reading EEPROM. But commit 8ad6249c51d0 ("eeprom: at25: convert to spi-mem API") introduced an additional dynamically allocated bounce buffer whose size is exactly the size of the transfer, leading to a buffer overrun in the fsl-cpm driver when that size is odd. Add the missing length parity verification and remain in 8 bit mode when the length is not even.

Timeline

  1. CVE published
  2. Record last updated

Affected versions

  • Linux Linux

    From 60afe299bb541a928ba39bcb4ae8d3e428d1c5a5 · fixed in c8f1d35076b78df61ace737e41cc1f4b7b63236c; From 4badd33929c05ed314794b95f1af1308f7222be8 · fixed in 9c34a4a2ead00979d203a8c16bea87f0ef5291d8; From 7f6738e003b364783f3019fdf6e7645bc8dd1643 · fixed in 837a23a11e0f734f096c7c7b0778d0e625e3dc87; From fc96ec826bced75cc6b9c07a4ac44bbf651337ab · fixed in 3dd6d01384823e1bd8602873153d6fc4337ac4fe; From fc96ec826bced75cc6b9c07a4ac44bbf651337ab · fixed in 743cebcbd1b2609ec5057ab474979cef73d1b681; From fc96ec826bced75cc6b9c07a4ac44bbf651337ab · fixed in be0b613198e6bfa104ad520397cab82ad3ec1771; From fc96ec826bced75cc6b9c07a4ac44bbf651337ab · fixed in 1417927df8049a0194933861e9b098669a95c762; From 5.10.181 · fixed in 5.10.248; From 5.15.114 · fixed in 5.15.198; From 6.1.29 · fixed in 6.1.160; From 4.14.316 · fixed in 4.15; From 4.19.284 · fixed in 4.20; From 5.4.244 · fixed in 5.5; From 6.2.16 · fixed in 6.3; From 6.3.3 · fixed in 6.4

  • Linux Linux

    6.4

  • KernelLinux

    fixed in 5.10.248; From 5.11.0 · fixed in 5.15.198; From 5.16.0 · fixed in 6.1.160; From 6.2.0 · fixed in 6.6.120; From 6.4.0 · fixed in 6.12.64; From 6.7.0 · fixed in 6.18.3

References 7

git.kernel.org