CVE-2026-98635 (GCVE-0-2026-98635)
Vulnerability from cvelistv5
Published
2026-10-18 15:20
Modified
2026-10-19 09:23
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: scsi: block: Fix zones_cond out-of-bounds write on zone report blk_revalidate_disk_zones() sizes the zones_cond array from the disk capacity and zone size, but the index used by blk_revalidate_zone_cond() comes from the device-driven report_zones() walk and is never checked against the array size. A device reporting more zones than fit the array makes blk_zone_set_cond() write out of bounds. One way to reach this is a zone count exceeding 32 bits: both blk_revalidate_zone_args.nr_zones and struct zoned_disk_info.nr_zones are unsigned int, so a disk advertising more than UINT_MAX zones (e.g. 2^32 + 1024 zones of one 512-byte logical block) gets its zone count truncated to a small value, undersizing the array while the report walk keeps counting upward. Check the index against the array size before storing the zone condition, and refuse to revalidate when the zone count does not fit 32 bits.
Impacted products
Vendor Product Version
Linux Linux Version: 6e945ffb6555705cf20b1fcdc21a139911562995
Version: 6e945ffb6555705cf20b1fcdc21a139911562995
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "block/blk-zoned.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ca688bb207957cffa5a8cad207329b0dcac1f2c0",
              "status": "affected",
              "version": "6e945ffb6555705cf20b1fcdc21a139911562995",
              "versionType": "git"
            },
            {
              "lessThan": "7c431d61b69a3fd0784c20aa4cd0b8fb501b5653",
              "status": "affected",
              "version": "6e945ffb6555705cf20b1fcdc21a139911562995",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "block/blk-zoned.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "6.19"
            },
            {
              "lessThan": "6.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "7.2.*",
              "status": "unaffected",
              "version": "7.2.9",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "7.3",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.2.9",
                  "versionStartIncluding": "6.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "7.3",
                  "versionStartIncluding": "6.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\nscsi: block: Fix zones_cond out-of-bounds write on zone report\n\nblk_revalidate_disk_zones() sizes the zones_cond array from the disk\ncapacity and zone size, but the index used by blk_revalidate_zone_cond()\ncomes from the device-driven report_zones() walk and is never checked\nagainst the array size. A device reporting more zones than fit the array\nmakes blk_zone_set_cond() write out of bounds.\n\nOne way to reach this is a zone count exceeding 32 bits: both\nblk_revalidate_zone_args.nr_zones and struct zoned_disk_info.nr_zones are\nunsigned int, so a disk advertising more than UINT_MAX zones (e.g.  2^32 +\n1024 zones of one 512-byte logical block) gets its zone count truncated to\na small value, undersizing the array while the report walk keeps counting\nupward.\n\nCheck the index against the array size before storing the zone condition,\nand refuse to revalidate when the zone count does not fit 32 bits."
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-10-19T09:23:04.703Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ca688bb207957cffa5a8cad207329b0dcac1f2c0"
        },
        {
          "url": "https://git.kernel.org/stable/c/7c431d61b69a3fd0784c20aa4cd0b8fb501b5653"
        }
      ],
      "title": "scsi: block: Fix zones_cond out-of-bounds write on zone report",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2026-98635",
    "datePublished": "2026-10-18T15:20:05.961Z",
    "dateReserved": "2026-09-25T10:25:14.361Z",
    "dateUpdated": "2026-10-19T09:23:04.703Z",
    "state": "PUBLISHED"
  },
  "dataType": "CVE_RECORD",
  "dataVersion": "5.2"
}


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.
  • Published Proof of Concept: A public proof of concept is available for this vulnerability.
  • 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…