{ "dataType": "CVE_RECORD", "dataVersion": "5.2", "cveMetadata": { "cveId": "CVE-2025-68794", "assignerOrgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "state": "PUBLISHED", "assignerShortName": "Linux", "dateReserved": "2025-12-24T10:30:51.037Z", "datePublished": "2026-01-13T15:29:05.553Z", "dateUpdated": "2026-08-05T12:11:30.893Z" }, "containers": { "cna": { "providerMetadata": { "orgId": "416baaa9-dc9f-4396-8d5f-8c081fb06d67", "shortName": "Linux", "dateUpdated": "2026-08-05T12:11:30.893Z" }, "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": { "version": "3.1", "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H", "baseScore": 9.8, "baseSeverity": "CRITICAL" }, "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’s 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." } ] } ], "affected": [ { "product": "Linux", "vendor": "Linux", "defaultStatus": "unaffected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/iomap/buffered-io.c" ], "versions": [ { "version": "9dc55f1389f9569acf9659e58dd836a9c70df217", "lessThan": "82b60ffbb532d919959702768dca04c3c0500ae5", "status": "affected", "versionType": "git" }, { "version": "9dc55f1389f9569acf9659e58dd836a9c70df217", "lessThan": "12053695c8ef5410e8cc6c9ed4c0db9cd9c82b3e", "status": "affected", "versionType": "git" }, { "version": "9dc55f1389f9569acf9659e58dd836a9c70df217", "lessThan": "142194fb21afe964d2d194cab1fc357cbf87e899", "status": "affected", "versionType": "git" }, { "version": "9dc55f1389f9569acf9659e58dd836a9c70df217", "lessThan": "7aa6bc3e8766990824f66ca76c19596ce10daf3e", "status": "affected", "versionType": "git" } ] }, { "product": "Linux", "vendor": "Linux", "defaultStatus": "affected", "repo": "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git", "programFiles": [ "fs/iomap/buffered-io.c" ], "versions": [ { "version": "4.19", "status": "affected" }, { "version": "0", "lessThan": "4.19", "status": "unaffected", "versionType": "semver" }, { "version": "6.6.120", "lessThanOrEqual": "6.6.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.12.64", "lessThanOrEqual": "6.12.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.18.3", "lessThanOrEqual": "6.18.*", "status": "unaffected", "versionType": "semver" }, { "version": "6.19", "lessThanOrEqual": "*", "status": "unaffected", "versionType": "original_commit_for_fix" } ] } ], "cpeApplicability": [ { "nodes": [ { "operator": "OR", "negate": false, "cpeMatch": [ { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.19", "versionEndExcluding": "6.6.120" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.19", "versionEndExcluding": "6.12.64" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.19", "versionEndExcluding": "6.18.3" }, { "vulnerable": true, "criteria": "cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*", "versionStartIncluding": "4.19", "versionEndExcluding": "6.19" } ] } ] } ], "references": [ { "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" } } } }