0.0
NA
CVE-2026-98207
mmc: spi: reset bytes_xfered before retrying CRC failures
Description

In the Linux kernel, the following vulnerability has been resolved: mmc: spi: reset bytes_xfered before retrying CRC failures mmc_spi_data_do() updates data->bytes_xfered after each block has been transferred successfully. If a later block in the same data request fails with a CRC error, data->bytes_xfered may therefore contain the number of bytes completed before the failing block. mmc_spi_request() has a private recovery path for such CRC failures. It sends STOP_TRANSMISSION, clears data->error and jumps back to crc_recover to issue the same command and data request again. However, it does not clear data->bytes_xfered before the retry. If the retry succeeds, the request is completed with the bytes from the failed attempt still included in data->bytes_xfered. For a multi-block request this can make the completed request report more bytes than were transferred by the successful retry, and can even exceed the request size when most blocks completed before the CRC error. This is most likely to be observed on MMC-over-SPI systems where long multi-block transfers occasionally hit a data CRC error but the mmc_spi-internal retry succeeds. The data itself is retried, but the completion accounting is not. Clear data->bytes_xfered together with data->error before repeating the request so the final completion reports only the bytes transferred by the successful attempt.

INFO

Published Date :

Oct. 6, 2026, 9:18 a.m.

Last Modified :

Oct. 19, 2026, 10:18 a.m.

Remotely Exploit :

No

Source :

416baaa9-dc9f-4396-8d5f-8c081fb06d67
Affected Products

The following products are affected by CVE-2026-98207 vulnerability. Even if cvefeed.io is aware of the exact versions of the products that are affected, the information is not represented in the table below.

ID Vendor Product Action
1 Linux linux_kernel
Solution
Correctly reset transfer byte count before retrying CRC failures in mmc:spi.
  • Reset bytes_xfered before retrying CRC failures.
  • Ensure completion accounting matches transferred bytes.
  • Update mmc:spi driver to clear byte count on retry.
  • Apply the fix for mmc_spi_request CRC error handling.
CWE - Common Weakness Enumeration

While CVE identifies specific instances of vulnerabilities, CWE categorizes the common flaws or weaknesses that can lead to vulnerabilities. CVE-2026-98207 is associated with the following CWEs:

Common Attack Pattern Enumeration and Classification (CAPEC)

Common Attack Pattern Enumeration and Classification (CAPEC) stores attack patterns, which are descriptions of the common attributes and approaches employed by adversaries to exploit the CVE-2026-98207 weaknesses.

We scan GitHub repositories to detect new proof-of-concept exploits. Following list is a collection of public exploits and proof-of-concepts, which have been published on GitHub (sorted by the most recently updated).

Results are limited to the first 15 repositories due to potential performance issues.

The following list is the news that have been mention CVE-2026-98207 vulnerability anywhere in the article.

The following table lists the changes that have been made to the CVE-2026-98207 vulnerability over time.

Vulnerability history details can be useful for understanding the evolution of a vulnerability, and for identifying the most recent changes that may impact the vulnerability's severity, exploitability, or other characteristics.

  • CVE Modified by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Oct. 19, 2026

    Action Type Old Value New Value
    Added Affected Affected value modified. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/98xxx/CVE-2026-98207.json">CVE-2026-98207</a>
  • New CVE Received by 416baaa9-dc9f-4396-8d5f-8c081fb06d67

    Oct. 06, 2026

    Action Type Old Value New Value
    Added Description In the Linux kernel, the following vulnerability has been resolved: mmc: spi: reset bytes_xfered before retrying CRC failures mmc_spi_data_do() updates data->bytes_xfered after each block has been transferred successfully. If a later block in the same data request fails with a CRC error, data->bytes_xfered may therefore contain the number of bytes completed before the failing block. mmc_spi_request() has a private recovery path for such CRC failures. It sends STOP_TRANSMISSION, clears data->error and jumps back to crc_recover to issue the same command and data request again. However, it does not clear data->bytes_xfered before the retry. If the retry succeeds, the request is completed with the bytes from the failed attempt still included in data->bytes_xfered. For a multi-block request this can make the completed request report more bytes than were transferred by the successful retry, and can even exceed the request size when most blocks completed before the CRC error. This is most likely to be observed on MMC-over-SPI systems where long multi-block transfers occasionally hit a data CRC error but the mmc_spi-internal retry succeeds. The data itself is retried, but the completion accounting is not. Clear data->bytes_xfered together with data->error before repeating the request so the final completion reports only the bytes transferred by the successful attempt.
    Added Affected New affected value received. <a href="https://github.com/CVEProject/cvelistV5/blob/main/cves/2026/98xxx/CVE-2026-98207.json">CVE-2026-98207</a>
    Added Reference https://git.kernel.org/stable/c/0b8c8504593409954ed1a60db4e437d814e04023
    Added Reference https://git.kernel.org/stable/c/3ae80c1fb7de4d3331427a955a44807745ac5a33
    Added Reference https://git.kernel.org/stable/c/4885e587f1afa9e1a573ab66f8c4d94d7b836d86
    Added Reference https://git.kernel.org/stable/c/57f5e29db63f7c80f1805d89234a74dcdbf60231
    Added Reference https://git.kernel.org/stable/c/7d2f0ec16b300645f20435a6c3827b15e01419af
    Added Reference https://git.kernel.org/stable/c/8b0cc8707f65e0f51912e764e1b309b2559db1ec
    Added Reference https://git.kernel.org/stable/c/d1acf4b9f6e9697406ce84ee9acfb92e094d5c7a
    Added Reference https://git.kernel.org/stable/c/da4929ee78ee701c3717543840798fedff66c430
EPSS is a daily estimate of the probability of exploitation activity being observed over the next 30 days. Following chart shows the EPSS score history of the vulnerability.