---
id: CVE-2026-98931
title: 'mtd: spinand: fix NULL pointer dereference with no ECC engine'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  mtd: spinand: fix NULL pointer dereference with no ECC engine

  When "nand-no-ecc-engine" is set in DT, nanddev_get_ecc_engine() takes
  the NAND_ECC_ENGINE_TYPE_NONE path…
severity: none
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 <
    77c449c9c946fc420008dc55cd30f53749c915e4
  - >-
    Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 <
    3c765fd5212c1bbc71568b1518a7ec963a7040b4
  - >-
    Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 <
    80e8b0ea73ba295e92dfb6cf1c41df9da64234c6
  - >-
    Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 <
    fc2f651f520394893b14b75281a01e502bfa73bb
  - >-
    Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 <
    b890e6163761ddb580cc74f43e15f8bbde15647e
  - Linux 5.18
published: '2026-10-23'
updated: '2026-10-23'
sourceUpdated: '2026-10-23T12:11:34.935Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-98931'
references:
  - url: 'https://git.kernel.org/stable/c/77c449c9c946fc420008dc55cd30f53749c915e4'
  - url: 'https://git.kernel.org/stable/c/3c765fd5212c1bbc71568b1518a7ec963a7040b4'
  - url: 'https://git.kernel.org/stable/c/80e8b0ea73ba295e92dfb6cf1c41df9da64234c6'
  - url: 'https://git.kernel.org/stable/c/fc2f651f520394893b14b75281a01e502bfa73bb'
  - url: 'https://git.kernel.org/stable/c/b890e6163761ddb580cc74f43e15f8bbde15647e'
tags:
  - cve.org
ingestedAt: '2026-10-23T13:24:55.565Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

mtd: spinand: fix NULL pointer dereference with no ECC engine

When "nand-no-ecc-engine" is set in DT, nanddev_get_ecc_engine() takes
the NAND_ECC_ENGINE_TYPE_NONE path and returns success while leaving
nand->ecc.engine NULL. The SPI-NAND code nevertheless dereferences it
unconditionally to test for a pipelined engine, so probing such a
device oopses immediately.

Rather than open-coding the test three times, add a
nand_ecc_is_pipelined() helper to the NAND core that folds the NULL
check into the integration comparison, and use it everywhere. Future
callers then cannot reintroduce the problem.

## Affected

- `Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 < 77c449c9c946fc420008dc55cd30f53749c915e4`
- `Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 < 3c765fd5212c1bbc71568b1518a7ec963a7040b4`
- `Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 < 80e8b0ea73ba295e92dfb6cf1c41df9da64234c6`
- `Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 < fc2f651f520394893b14b75281a01e502bfa73bb`
- `Linux >= f9d7c7265bcff7d9a17425a8cddf702e8fe159c2 < b890e6163761ddb580cc74f43e15f8bbde15647e`
- `Linux 5.18`

## Remediation

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