---
id: CVE-2025-68773
title: 'spi: fsl-cpm: Check length parity before switching to 16 bit mode'
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 ma…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= 60afe299bb541a928ba39bcb4ae8d3e428d1c5a5 <
    c8f1d35076b78df61ace737e41cc1f4b7b63236c
  - >-
    Linux >= 4badd33929c05ed314794b95f1af1308f7222be8 <
    9c34a4a2ead00979d203a8c16bea87f0ef5291d8
  - >-
    Linux >= 7f6738e003b364783f3019fdf6e7645bc8dd1643 <
    837a23a11e0f734f096c7c7b0778d0e625e3dc87
  - >-
    Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab <
    3dd6d01384823e1bd8602873153d6fc4337ac4fe
  - >-
    Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab <
    743cebcbd1b2609ec5057ab474979cef73d1b681
  - >-
    Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab <
    be0b613198e6bfa104ad520397cab82ad3ec1771
  - >-
    Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab <
    1417927df8049a0194933861e9b098669a95c762
  - Linux 42c04316d9275ec267d36e5e9064cd56c9884148
  - Linux dc120f2d35b030390a2bc0f94dd5f37e900cae91
  - Linux b558275c1b040f0e5aa56c862241f9212b6118c3
  - Linux b9d9e8856f1c83e4277403f9b4c369b322ebcb12
  - Linux 36a6d0f66c874666caf4e8be155b1be30f6231be
  - Linux >= 5.10.181 < 5.10.248
  - Linux >= 5.15.114 < 5.15.198
  - Linux >= 6.1.29 < 6.1.160
  - Linux >= 4.14.316 < 4.15
  - Linux >= 4.19.284 < 4.20
  - Linux >= 5.4.244 < 5.5
  - Linux >= 6.2.16 < 6.3
  - Linux >= 6.3.3 < 6.4
  - Linux 6.4
published: '2026-01-13'
updated: '2026-09-08'
sourceUpdated: '2026-09-08T08:43:24.390Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2025-68773'
references:
  - url: 'https://git.kernel.org/stable/c/c8f1d35076b78df61ace737e41cc1f4b7b63236c'
  - url: 'https://git.kernel.org/stable/c/9c34a4a2ead00979d203a8c16bea87f0ef5291d8'
  - url: 'https://git.kernel.org/stable/c/837a23a11e0f734f096c7c7b0778d0e625e3dc87'
  - url: 'https://git.kernel.org/stable/c/3dd6d01384823e1bd8602873153d6fc4337ac4fe'
  - url: 'https://git.kernel.org/stable/c/743cebcbd1b2609ec5057ab474979cef73d1b681'
  - url: 'https://git.kernel.org/stable/c/be0b613198e6bfa104ad520397cab82ad3ec1771'
  - url: 'https://git.kernel.org/stable/c/1417927df8049a0194933861e9b098669a95c762'
tags:
  - cve.org
epss: 0.00207
epssPercentile: 0.09537
ingestedAt: '2026-09-08T15:33:26.995Z'
---

## Overview

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.

## Affected

- `Linux >= 60afe299bb541a928ba39bcb4ae8d3e428d1c5a5 < c8f1d35076b78df61ace737e41cc1f4b7b63236c`
- `Linux >= 4badd33929c05ed314794b95f1af1308f7222be8 < 9c34a4a2ead00979d203a8c16bea87f0ef5291d8`
- `Linux >= 7f6738e003b364783f3019fdf6e7645bc8dd1643 < 837a23a11e0f734f096c7c7b0778d0e625e3dc87`
- `Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab < 3dd6d01384823e1bd8602873153d6fc4337ac4fe`
- `Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab < 743cebcbd1b2609ec5057ab474979cef73d1b681`
- `Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab < be0b613198e6bfa104ad520397cab82ad3ec1771`
- `Linux >= fc96ec826bced75cc6b9c07a4ac44bbf651337ab < 1417927df8049a0194933861e9b098669a95c762`
- `Linux 42c04316d9275ec267d36e5e9064cd56c9884148`
- `Linux dc120f2d35b030390a2bc0f94dd5f37e900cae91`
- `Linux b558275c1b040f0e5aa56c862241f9212b6118c3`
- `Linux b9d9e8856f1c83e4277403f9b4c369b322ebcb12`
- `Linux 36a6d0f66c874666caf4e8be155b1be30f6231be`
- `Linux >= 5.10.181 < 5.10.248`
- `Linux >= 5.15.114 < 5.15.198`
- `Linux >= 6.1.29 < 6.1.160`
- `Linux >= 4.14.316 < 4.15`
- `Linux >= 4.19.284 < 4.20`
- `Linux >= 5.4.244 < 5.5`
- `Linux >= 6.2.16 < 6.3`
- `Linux >= 6.3.3 < 6.4`
- `Linux 6.4`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
