CVE-2025-37896 (GCVE-0-2025-37896)
Vulnerability from cvelistv5
Published
2025-05-20 15:21
Modified
2025-05-26 05:23
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: spi: spi-mem: Add fix to avoid divide error For some SPI flash memory operations, dummy bytes are not mandatory. For example, in Winbond SPINAND flash memory devices, the `write_cache` and `update_cache` operation variants have zero dummy bytes. Calculating the duration for SPI memory operations with zero dummy bytes causes a divide error when `ncycles` is calculated in the spi_mem_calc_op_duration(). Add changes to skip the 'ncylcles' calculation for zero dummy bytes. Following divide error is fixed by this change: Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI ... ? do_trap+0xdb/0x100 ? do_error_trap+0x75/0xb0 ? spi_mem_calc_op_duration+0x56/0xb0 ? exc_divide_error+0x3b/0x70 ? spi_mem_calc_op_duration+0x56/0xb0 ? asm_exc_divide_error+0x1b/0x20 ? spi_mem_calc_op_duration+0x56/0xb0 ? spinand_select_op_variant+0xee/0x190 [spinand] spinand_match_and_init+0x13e/0x1a0 [spinand] spinand_manufacturer_match+0x6e/0xa0 [spinand] spinand_probe+0x357/0x7f0 [spinand] ? kernfs_activate+0x87/0xd0 spi_mem_probe+0x7a/0xb0 spi_probe+0x7d/0x130
Impacted products
Vendor Product Version
Linux Linux Version: 226d6cb3cb799aae46d0dd19a521133997d9db11
Version: 226d6cb3cb799aae46d0dd19a521133997d9db11
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "drivers/spi/spi-mem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "1915dbd67dadc0bb35670c8e28229baa29368d17",
              "status": "affected",
              "version": "226d6cb3cb799aae46d0dd19a521133997d9db11",
              "versionType": "git"
            },
            {
              "lessThan": "8e4d3d8a5e51e07bd0d6cdd81b5e4af79f796927",
              "status": "affected",
              "version": "226d6cb3cb799aae46d0dd19a521133997d9db11",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "drivers/spi/spi-mem.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.14"
            },
            {
              "lessThan": "6.14",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.14.*",
              "status": "unaffected",
              "version": "6.14.6",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.15",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.14.6",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.15",
                  "versionStartIncluding": "6.14",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nspi: spi-mem: Add fix to avoid divide error\n\nFor some SPI flash memory operations, dummy bytes are not mandatory. For\nexample, in Winbond SPINAND flash memory devices, the `write_cache` and\n`update_cache` operation variants have zero dummy bytes. Calculating the\nduration for SPI memory operations with zero dummy bytes causes\na divide error when `ncycles` is calculated in the\nspi_mem_calc_op_duration().\n\nAdd changes to skip the \u0027ncylcles\u0027 calculation for zero dummy bytes.\n\nFollowing divide error is fixed by this change:\n\n Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI\n...\n\n  ? do_trap+0xdb/0x100\n  ? do_error_trap+0x75/0xb0\n  ? spi_mem_calc_op_duration+0x56/0xb0\n  ? exc_divide_error+0x3b/0x70\n  ? spi_mem_calc_op_duration+0x56/0xb0\n  ? asm_exc_divide_error+0x1b/0x20\n  ? spi_mem_calc_op_duration+0x56/0xb0\n  ? spinand_select_op_variant+0xee/0x190 [spinand]\n  spinand_match_and_init+0x13e/0x1a0 [spinand]\n  spinand_manufacturer_match+0x6e/0xa0 [spinand]\n  spinand_probe+0x357/0x7f0 [spinand]\n  ? kernfs_activate+0x87/0xd0\n  spi_mem_probe+0x7a/0xb0\n  spi_probe+0x7d/0x130"
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2025-05-26T05:23:14.733Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/1915dbd67dadc0bb35670c8e28229baa29368d17"
        },
        {
          "url": "https://git.kernel.org/stable/c/8e4d3d8a5e51e07bd0d6cdd81b5e4af79f796927"
        }
      ],
      "title": "spi: spi-mem: Add fix to avoid divide error",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-37896",
    "datePublished": "2025-05-20T15:21:32.685Z",
    "dateReserved": "2025-04-16T04:51:23.964Z",
    "dateUpdated": "2025-05-26T05:23:14.733Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.1",
  "vulnerability-lookup:meta": {
    "nvd": "{\"cve\":{\"id\":\"CVE-2025-37896\",\"sourceIdentifier\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\",\"published\":\"2025-05-20T16:15:25.960\",\"lastModified\":\"2025-05-21T20:25:16.407\",\"vulnStatus\":\"Awaiting Analysis\",\"cveTags\":[],\"descriptions\":[{\"lang\":\"en\",\"value\":\"In the Linux kernel, the following vulnerability has been resolved:\\n\\nspi: spi-mem: Add fix to avoid divide error\\n\\nFor some SPI flash memory operations, dummy bytes are not mandatory. For\\nexample, in Winbond SPINAND flash memory devices, the `write_cache` and\\n`update_cache` operation variants have zero dummy bytes. Calculating the\\nduration for SPI memory operations with zero dummy bytes causes\\na divide error when `ncycles` is calculated in the\\nspi_mem_calc_op_duration().\\n\\nAdd changes to skip the \u0027ncylcles\u0027 calculation for zero dummy bytes.\\n\\nFollowing divide error is fixed by this change:\\n\\n Oops: divide error: 0000 [#1] PREEMPT SMP NOPTI\\n...\\n\\n  ? do_trap+0xdb/0x100\\n  ? do_error_trap+0x75/0xb0\\n  ? spi_mem_calc_op_duration+0x56/0xb0\\n  ? exc_divide_error+0x3b/0x70\\n  ? spi_mem_calc_op_duration+0x56/0xb0\\n  ? asm_exc_divide_error+0x1b/0x20\\n  ? spi_mem_calc_op_duration+0x56/0xb0\\n  ? spinand_select_op_variant+0xee/0x190 [spinand]\\n  spinand_match_and_init+0x13e/0x1a0 [spinand]\\n  spinand_manufacturer_match+0x6e/0xa0 [spinand]\\n  spinand_probe+0x357/0x7f0 [spinand]\\n  ? kernfs_activate+0x87/0xd0\\n  spi_mem_probe+0x7a/0xb0\\n  spi_probe+0x7d/0x130\"},{\"lang\":\"es\",\"value\":\"En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: spi: spi-mem: Agregar correcci\u00f3n para evitar el error de divisi\u00f3n Para algunas operaciones de memoria flash SPI, los bytes ficticios no son obligatorios. Por ejemplo, en dispositivos de memoria flash Winbond SPINAND, las variantes de operaci\u00f3n `write_cache` y `update_cache` tienen cero bytes ficticios. Calcular la duraci\u00f3n de las operaciones de memoria SPI con cero bytes ficticios causa un error de divisi\u00f3n cuando se calcula `ncycles` en spi_mem_calc_op_duration(). Agregar cambios para omitir el c\u00e1lculo de \u0027ncylcles\u0027 para cero bytes ficticios. El siguiente error de divisi\u00f3n se corrige con este cambio: Oops: error de divisi\u00f3n: 0000 [#1] PREEMPT SMP NOPTI ... ? do_trap+0xdb/0x100 ? do_error_trap+0x75/0xb0 ? spi_mem_calc_op_duration+0x56/0xb0 ? Error de divisi\u00f3n de error de exc. +0x3b/0x70 ? Duraci\u00f3n de operaci\u00f3n de c\u00e1lculo de memoria spi +0x56/0xb0 ? Error de divisi\u00f3n de error de asm de exc. +0x1b/0x20 ? Duraci\u00f3n de operaci\u00f3n de c\u00e1lculo de memoria spi +0x56/0xb0 ? Variante de operaci\u00f3n de selecci\u00f3n de spinand +0xee/0x190 [spinand] Coincidencia de spinand e inicializaci\u00f3n +0x13e/0x1a0 [spinand] Coincidencia de fabricante de spinand +0x6e/0xa0 [spinand] Sonda de spinand +0x357/0x7f0 [spinand] ? Activaci\u00f3n de Kernfs +0x87/0xd0 Sonda de memoria spi +0x7a/0xb0 Sonda spi +0x7d/0x130\"}],\"metrics\":{},\"references\":[{\"url\":\"https://git.kernel.org/stable/c/1915dbd67dadc0bb35670c8e28229baa29368d17\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"},{\"url\":\"https://git.kernel.org/stable/c/8e4d3d8a5e51e07bd0d6cdd81b5e4af79f796927\",\"source\":\"416baaa9-dc9f-4396-8d5f-8c081fb06d67\"}]}}"
  }
}


Log in or create an account to share your comment.




Tags
Taxonomy of the tags.


Loading…

Loading…

Loading…

Sightings

Author Source Type Date

Nomenclature

  • Seen: The vulnerability was mentioned, discussed, or seen somewhere by the user.
  • Confirmed: The vulnerability is confirmed from an analyst perspective.
  • Exploited: This vulnerability was exploited and seen by the user reporting the sighting.
  • Patched: This vulnerability was successfully patched by the user reporting the sighting.
  • Not exploited: This vulnerability was not exploited or seen by the user reporting the sighting.
  • Not confirmed: The user expresses doubt about the veracity of the vulnerability.
  • Not patched: This vulnerability was not successfully patched by the user reporting the sighting.


Loading…

Loading…