CVE-2025-68794 (GCVE-0-2025-68794)
Vulnerability from cvelistv5
Published
2026-01-13 15:29
Modified
2026-08-27 12:39
Severity ?
Summary
In the Linux kernel, the following vulnerability has been resolved: iomap: adjust read range correctly for non-block-aligned positions iomap_adjust_read_range() assumes that the position and length passed in are block-aligned. This is not always the case however, as shown in the syzbot generated case for erofs. This causes too many bytes to be skipped for uptodate blocks, which results in returning the incorrect position and length to read in. If all the blocks are uptodate, this underflows length and returns a position beyond the folio. Fix the calculation to also take into account the block offset when calculating how many bytes can be skipped for uptodate blocks.
Impacted products
Vendor Product Version
Linux Linux Version: 9dc55f1389f9569acf9659e58dd836a9c70df217
Version: 9dc55f1389f9569acf9659e58dd836a9c70df217
Version: 9dc55f1389f9569acf9659e58dd836a9c70df217
Version: 9dc55f1389f9569acf9659e58dd836a9c70df217
Version: 9dc55f1389f9569acf9659e58dd836a9c70df217
Version: 9dc55f1389f9569acf9659e58dd836a9c70df217
Version: 9dc55f1389f9569acf9659e58dd836a9c70df217
Create a notification for this product.
Show details on NVD website


{
  "containers": {
    "cna": {
      "affected": [
        {
          "defaultStatus": "unaffected",
          "product": "Linux",
          "programFiles": [
            "fs/iomap/buffered-io.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "lessThan": "ce20f49ac9194cf81a77f01d1c316d7c17ae753c",
              "status": "affected",
              "version": "9dc55f1389f9569acf9659e58dd836a9c70df217",
              "versionType": "git"
            },
            {
              "lessThan": "275b37a1e5c2c8abd313e8075f6aec9a349f291b",
              "status": "affected",
              "version": "9dc55f1389f9569acf9659e58dd836a9c70df217",
              "versionType": "git"
            },
            {
              "lessThan": "b8c9f25fd84328c5fcc4f70c6d1e8f1d4787eaac",
              "status": "affected",
              "version": "9dc55f1389f9569acf9659e58dd836a9c70df217",
              "versionType": "git"
            },
            {
              "lessThan": "82b60ffbb532d919959702768dca04c3c0500ae5",
              "status": "affected",
              "version": "9dc55f1389f9569acf9659e58dd836a9c70df217",
              "versionType": "git"
            },
            {
              "lessThan": "12053695c8ef5410e8cc6c9ed4c0db9cd9c82b3e",
              "status": "affected",
              "version": "9dc55f1389f9569acf9659e58dd836a9c70df217",
              "versionType": "git"
            },
            {
              "lessThan": "142194fb21afe964d2d194cab1fc357cbf87e899",
              "status": "affected",
              "version": "9dc55f1389f9569acf9659e58dd836a9c70df217",
              "versionType": "git"
            },
            {
              "lessThan": "7aa6bc3e8766990824f66ca76c19596ce10daf3e",
              "status": "affected",
              "version": "9dc55f1389f9569acf9659e58dd836a9c70df217",
              "versionType": "git"
            }
          ]
        },
        {
          "defaultStatus": "affected",
          "product": "Linux",
          "programFiles": [
            "fs/iomap/buffered-io.c"
          ],
          "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git",
          "vendor": "Linux",
          "versions": [
            {
              "status": "affected",
              "version": "4.19"
            },
            {
              "lessThan": "4.19",
              "status": "unaffected",
              "version": "0",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.10.*",
              "status": "unaffected",
              "version": "5.10.267",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "5.15.*",
              "status": "unaffected",
              "version": "5.15.218",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.1.*",
              "status": "unaffected",
              "version": "6.1.185",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.6.*",
              "status": "unaffected",
              "version": "6.6.120",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.12.*",
              "status": "unaffected",
              "version": "6.12.64",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "6.18.*",
              "status": "unaffected",
              "version": "6.18.3",
              "versionType": "semver"
            },
            {
              "lessThanOrEqual": "*",
              "status": "unaffected",
              "version": "6.19",
              "versionType": "original_commit_for_fix"
            }
          ]
        }
      ],
      "cpeApplicability": [
        {
          "nodes": [
            {
              "cpeMatch": [
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.10.267",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "5.15.218",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.1.185",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.6.120",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.12.64",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.18.3",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                },
                {
                  "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*",
                  "versionEndExcluding": "6.19",
                  "versionStartIncluding": "4.19",
                  "vulnerable": true
                }
              ],
              "negate": false,
              "operator": "OR"
            }
          ]
        }
      ],
      "descriptions": [
        {
          "lang": "en",
          "value": "In the Linux kernel, the following vulnerability has been resolved:\n\niomap: adjust read range correctly for non-block-aligned positions\n\niomap_adjust_read_range() assumes that the position and length passed in\nare block-aligned. This is not always the case however, as shown in the\nsyzbot generated case for erofs. This causes too many bytes to be\nskipped for uptodate blocks, which results in returning the incorrect\nposition and length to read in. If all the blocks are uptodate, this\nunderflows length and returns a position beyond the folio.\n\nFix the calculation to also take into account the block offset when\ncalculating how many bytes can be skipped for uptodate blocks."
        }
      ],
      "metrics": [
        {
          "cvssV3_1": {
            "baseScore": 9.8,
            "baseSeverity": "CRITICAL",
            "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H",
            "version": "3.1"
          },
          "scenarios": [
            {
              "lang": "en",
              "value": "AV:N - EROFS supports NFS export, allowing a remote NFS READ request to reach nfsd, filemap, erofs_read_folio or erofs_readahead, and the vulnerable iomap function.\nAC:L - The underflow is deterministic once a non-block-aligned range intersects leading uptodate blocks; no race or condition outside the attacker\u2019s control is required.\nPR:N - A public NFS export can accept RPC_AUTH_NULL, map the requester to the anonymous identity, and permit access to a world-readable trigger file without authentication.\nUI:N - The remote attacker directly triggers the vulnerable reads, including any repetitions needed to establish partial-uptodate state, without victim action.\nS:U - The corruption compromises the kernel and resources governed by the same host security authority, without inherently crossing a VM, IOMMU, or other scope boundary.\nC:H - The underflow can create an almost-4-GiB BIO vector spanning unrelated physical pages; the resulting kernel memory corruption can support code execution and arbitrary information disclosure.\nI:H - Attacker-controlled filesystem data can be read through the malformed BIO into unrelated kernel memory, providing a powerful corruption primitive capable of control-flow hijacking.\nA:H - Hole or post-EOF paths reach bounds BUG_ON checks, while mapped paths can corrupt extensive kernel memory, either of which can panic or otherwise crash the system."
            }
          ]
        }
      ],
      "providerMetadata": {
        "dateUpdated": "2026-08-27T12:39:37.848Z",
        "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
        "shortName": "Linux"
      },
      "references": [
        {
          "url": "https://git.kernel.org/stable/c/ce20f49ac9194cf81a77f01d1c316d7c17ae753c"
        },
        {
          "url": "https://git.kernel.org/stable/c/275b37a1e5c2c8abd313e8075f6aec9a349f291b"
        },
        {
          "url": "https://git.kernel.org/stable/c/b8c9f25fd84328c5fcc4f70c6d1e8f1d4787eaac"
        },
        {
          "url": "https://git.kernel.org/stable/c/82b60ffbb532d919959702768dca04c3c0500ae5"
        },
        {
          "url": "https://git.kernel.org/stable/c/12053695c8ef5410e8cc6c9ed4c0db9cd9c82b3e"
        },
        {
          "url": "https://git.kernel.org/stable/c/142194fb21afe964d2d194cab1fc357cbf87e899"
        },
        {
          "url": "https://git.kernel.org/stable/c/7aa6bc3e8766990824f66ca76c19596ce10daf3e"
        }
      ],
      "title": "iomap: adjust read range correctly for non-block-aligned positions",
      "x_generator": {
        "engine": "bippy-1.2.0"
      }
    }
  },
  "cveMetadata": {
    "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67",
    "assignerShortName": "Linux",
    "cveId": "CVE-2025-68794",
    "datePublished": "2026-01-13T15:29:05.553Z",
    "dateReserved": "2025-12-24T10:30:51.037Z",
    "dateUpdated": "2026-08-27T12:39:37.848Z",
    "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…