{"api_version":"1","generated_at":"2026-08-23T21:26:13+00:00","cve":"CVE-2026-68388","urls":{"html":"https://cve.report/CVE-2026-68388","api":"https://cve.report/api/cve/CVE-2026-68388.json","docs":"https://cve.report/api","cve_org":"https://www.cve.org/CVERecord?id=CVE-2026-68388","nvd":"https://nvd.nist.gov/vuln/detail/CVE-2026-68388"},"summary":{"title":"smb/client: handle overlapping allocated ranges in fallocate","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb/client: handle overlapping allocated ranges in fallocate\n\nsmb3_simple_fallocate_range() can skip holes when an allocated range\nreturned by the server starts before the current fallocate offset. The\nskipped hole is not zero-filled, but fallocate still returns success. A\nlater write to that hole may therefore fail with ENOSPC.\n\nThe function queries allocated ranges so that it can preserve existing\ncontents and write zeroes only into holes. However, the server may return\na range that starts before the current fallocate offset.\n\nFor example, assume the fallocate request is [100, 400) and the only\nallocated range returned by the server is [0, 200):\n\n        Request:      [100, 400)\n        Server range: [  0, 200)  allocated\n\n        Correct:\n        [100, 200)    allocated data, skip\n        [200, 400)    hole, zero-fill\n\n        Current:\n        [100, 300)    skipped\n        [300, 400)    zero-filled afterwards\n\nThe current code adds the full server range length, 200, to the current\noffset 100 and moves to 300. As a result, the hole in [200, 300) is\nskipped without being zero-filled.\n\nFix this by advancing only over the part of the allocated range that\noverlaps the current fallocate offset.  Ignore ranges that end before the\ncurrent offset and reject ranges whose end offset overflows.\n\nThis also prevents a malformed range length from causing an out-of-bounds\nzero-buffer read.","state":"PUBLISHED","assigner":"Linux","published_at":"2026-08-10 13:20:32","updated_at":"2026-08-19 17:20:47"},"problem_types":[],"metrics":[{"version":"3.1","source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","score":"9.8","severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","data":{"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","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"}},{"version":"3.1","source":"CNA","type":"DECLARED","score":"9.8","severity":"CRITICAL","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","data":{"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"}}],"references":[{"url":"https://git.kernel.org/stable/c/f47c7277c03a636fcc3a57969f2dc09567b3c050","name":"https://git.kernel.org/stable/c/f47c7277c03a636fcc3a57969f2dc09567b3c050","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/b09ae45d85dc816987a71db9eebc54b0ae288e94","name":"https://git.kernel.org/stable/c/b09ae45d85dc816987a71db9eebc54b0ae288e94","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/01719883235507b1585e4c51e320d9a7113dc698","name":"https://git.kernel.org/stable/c/01719883235507b1585e4c51e320d9a7113dc698","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2","name":"https://git.kernel.org/stable/c/aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/a4a09e5142835633fffbde68bd0a039ba4d4bf97","name":"https://git.kernel.org/stable/c/a4a09e5142835633fffbde68bd0a039ba4d4bf97","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/7e08ab7a061b17ac1989a225c6afb53f44a86808","name":"https://git.kernel.org/stable/c/7e08ab7a061b17ac1989a225c6afb53f44a86808","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/377fe3e583e46369ee1004d5cfe12271d6589a68","name":"https://git.kernel.org/stable/c/377fe3e583e46369ee1004d5cfe12271d6589a68","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://git.kernel.org/stable/c/437637f5ff3f573b2edf8571de91fb00a21eb4e6","name":"https://git.kernel.org/stable/c/437637f5ff3f573b2edf8571de91fb00a21eb4e6","refsource":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","tags":[],"title":"","mime":"","httpstatus":"","archivestatus":"0"},{"url":"https://www.cve.org/CVERecord?id=CVE-2026-68388","name":"CVE Program record","refsource":"CVE.ORG","tags":["canonical"]},{"url":"https://nvd.nist.gov/vuln/detail/CVE-2026-68388","name":"NVD vulnerability detail","refsource":"NVD","tags":["canonical","analysis"]}],"affected":[{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected c406bb9ece6ef63721daab106f132ff4b4234e81 aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b 01719883235507b1585e4c51e320d9a7113dc698 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b f47c7277c03a636fcc3a57969f2dc09567b3c050 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b 437637f5ff3f573b2edf8571de91fb00a21eb4e6 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b 377fe3e583e46369ee1004d5cfe12271d6589a68 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b 7e08ab7a061b17ac1989a225c6afb53f44a86808 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b a4a09e5142835633fffbde68bd0a039ba4d4bf97 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b b09ae45d85dc816987a71db9eebc54b0ae288e94 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 2f9f4a2d0e6fcf0673ed51195e06e47abe966900 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5e397c943424de94879830e72c95f2679e297a76 git","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.10.50 5.10.265 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.12.17 5.13 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.13.2 5.14 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"affected 5.14","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.14 semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.10.265 5.10.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 5.15.216 5.15.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.1.183 6.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.6.148 6.6.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.12.101 6.12.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 6.18.42 6.18.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.1.6 7.1.* semver","platforms":[]},{"source":"CNA","vendor":"Linux","product":"Linux","version":"unaffected 7.2 * original_commit_for_fix","platforms":[]}],"timeline":[],"solutions":[],"workarounds":[],"exploits":[],"credits":[],"nvd_cpes":[],"vendor_comments":[],"enrichments":{"kev":null,"epss":{"cve_year":"2026","cve_id":"68388","cve":"CVE-2026-68388","epss":"0.004630000","percentile":"0.384410000","score_date":"2026-08-19","updated_at":"2026-08-20 00:13:09"},"legacy_qids":[]},"source_records":{"cve_program":{"containers":{"cna":{"affected":[{"defaultStatus":"unaffected","product":"Linux","programFiles":["fs/smb/client/smb2ops.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"lessThan":"aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2","status":"affected","version":"c406bb9ece6ef63721daab106f132ff4b4234e81","versionType":"git"},{"lessThan":"01719883235507b1585e4c51e320d9a7113dc698","status":"affected","version":"966a3cb7c7db786452a87afdc3b48858fc4d4d6b","versionType":"git"},{"lessThan":"f47c7277c03a636fcc3a57969f2dc09567b3c050","status":"affected","version":"966a3cb7c7db786452a87afdc3b48858fc4d4d6b","versionType":"git"},{"lessThan":"437637f5ff3f573b2edf8571de91fb00a21eb4e6","status":"affected","version":"966a3cb7c7db786452a87afdc3b48858fc4d4d6b","versionType":"git"},{"lessThan":"377fe3e583e46369ee1004d5cfe12271d6589a68","status":"affected","version":"966a3cb7c7db786452a87afdc3b48858fc4d4d6b","versionType":"git"},{"lessThan":"7e08ab7a061b17ac1989a225c6afb53f44a86808","status":"affected","version":"966a3cb7c7db786452a87afdc3b48858fc4d4d6b","versionType":"git"},{"lessThan":"a4a09e5142835633fffbde68bd0a039ba4d4bf97","status":"affected","version":"966a3cb7c7db786452a87afdc3b48858fc4d4d6b","versionType":"git"},{"lessThan":"b09ae45d85dc816987a71db9eebc54b0ae288e94","status":"affected","version":"966a3cb7c7db786452a87afdc3b48858fc4d4d6b","versionType":"git"},{"status":"affected","version":"2f9f4a2d0e6fcf0673ed51195e06e47abe966900","versionType":"git"},{"status":"affected","version":"5e397c943424de94879830e72c95f2679e297a76","versionType":"git"},{"lessThan":"5.10.265","status":"affected","version":"5.10.50","versionType":"semver"},{"lessThan":"5.13","status":"affected","version":"5.12.17","versionType":"semver"},{"lessThan":"5.14","status":"affected","version":"5.13.2","versionType":"semver"}]},{"defaultStatus":"affected","product":"Linux","programFiles":["fs/smb/client/smb2ops.c"],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","vendor":"Linux","versions":[{"status":"affected","version":"5.14"},{"lessThan":"5.14","status":"unaffected","version":"0","versionType":"semver"},{"lessThanOrEqual":"5.10.*","status":"unaffected","version":"5.10.265","versionType":"semver"},{"lessThanOrEqual":"5.15.*","status":"unaffected","version":"5.15.216","versionType":"semver"},{"lessThanOrEqual":"6.1.*","status":"unaffected","version":"6.1.183","versionType":"semver"},{"lessThanOrEqual":"6.6.*","status":"unaffected","version":"6.6.148","versionType":"semver"},{"lessThanOrEqual":"6.12.*","status":"unaffected","version":"6.12.101","versionType":"semver"},{"lessThanOrEqual":"6.18.*","status":"unaffected","version":"6.18.42","versionType":"semver"},{"lessThanOrEqual":"7.1.*","status":"unaffected","version":"7.1.6","versionType":"semver"},{"lessThanOrEqual":"*","status":"unaffected","version":"7.2","versionType":"original_commit_for_fix"}]}],"cpeApplicability":[{"nodes":[{"cpeMatch":[{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.10.265","versionStartIncluding":"5.10.50","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"5.15.216","versionStartIncluding":"5.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.1.183","versionStartIncluding":"5.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.6.148","versionStartIncluding":"5.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.12.101","versionStartIncluding":"5.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"6.18.42","versionStartIncluding":"5.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.1.6","versionStartIncluding":"5.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionEndExcluding":"7.2","versionStartIncluding":"5.14","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.12.17","vulnerable":true},{"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.13.2","vulnerable":true}],"negate":false,"operator":"OR"}]}],"descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb/client: handle overlapping allocated ranges in fallocate\n\nsmb3_simple_fallocate_range() can skip holes when an allocated range\nreturned by the server starts before the current fallocate offset. The\nskipped hole is not zero-filled, but fallocate still returns success. A\nlater write to that hole may therefore fail with ENOSPC.\n\nThe function queries allocated ranges so that it can preserve existing\ncontents and write zeroes only into holes. However, the server may return\na range that starts before the current fallocate offset.\n\nFor example, assume the fallocate request is [100, 400) and the only\nallocated range returned by the server is [0, 200):\n\n        Request:      [100, 400)\n        Server range: [  0, 200)  allocated\n\n        Correct:\n        [100, 200)    allocated data, skip\n        [200, 400)    hole, zero-fill\n\n        Current:\n        [100, 300)    skipped\n        [300, 400)    zero-filled afterwards\n\nThe current code adds the full server range length, 200, to the current\noffset 100 and moves to 300. As a result, the hole in [200, 300) is\nskipped without being zero-filled.\n\nFix this by advancing only over the part of the allocated range that\noverlaps the current fallocate offset.  Ignore ranges that end before the\ncurrent offset and reject ranges whose end offset overflows.\n\nThis also prevents a malformed range length from causing an out-of-bounds\nzero-buffer read."}],"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 - The malformed input is the FSCTL_QUERY_ALLOCATED_RANGES response parsed by the SMB client from a remote peer, so a malicious, compromised, or MITM'd SMB server exploits this purely over the network (TCP/445) against the mounted client.\nAC:L - The server fully and deterministically controls the returned range file_offset/length fields; a single record with bit 63 set in length reliably inflates the loop's len past the 1 MB buffer with no race, timing, or memory-layout precondition.\nPR:N - The attacker is the remote SMB server (or a network MITM) and needs no account, credentials, or privileges on the victim client; only the pre-existing SMB session the client itself established is required.\nUI:N - Against an already-mounted share (fstab/autofs/systemd automount) a compromised or MITM'd server needs no victim action, and fallocate/posix_fallocate is issued routinely by ordinary applications such as databases, VM images, and download managers.\nS:U - The out-of-bounds read, the corrupted write offsets, and the resulting crash all stay within the kernel of the client host; no VM, IOMMU, or sandbox boundary is crossed.\nC:H - Because smb3_simple_fallocate_write_range() advances buf by every 64 KB chunk written, the inflated length walks far past the 1 MB kvzalloc'd zero buffer and transmits adjacent kernel heap memory straight back to the attacker's server, yielding a large sequential kernel memory disclosure.\nI:H - The negative length drives off backwards and lets attacker-chosen offsets be zero-filled over ranges of the victim's file that hold real data, and the original defect makes fallocate report success while leaving holes unallocated, silently breaking the allocation guarantee applications rely on.\nA:H - The out-of-bounds read walks potentially gigabytes past the allocation and will fault on unmapped or guard pages, causing a kernel oops/panic, while the inflated length also drives an extremely long 64 KB-at-a-time write loop that stalls the caller."}]}],"providerMetadata":{"dateUpdated":"2026-08-19T16:34:42.827Z","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","shortName":"Linux"},"references":[{"url":"https://git.kernel.org/stable/c/aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2"},{"url":"https://git.kernel.org/stable/c/01719883235507b1585e4c51e320d9a7113dc698"},{"url":"https://git.kernel.org/stable/c/f47c7277c03a636fcc3a57969f2dc09567b3c050"},{"url":"https://git.kernel.org/stable/c/437637f5ff3f573b2edf8571de91fb00a21eb4e6"},{"url":"https://git.kernel.org/stable/c/377fe3e583e46369ee1004d5cfe12271d6589a68"},{"url":"https://git.kernel.org/stable/c/7e08ab7a061b17ac1989a225c6afb53f44a86808"},{"url":"https://git.kernel.org/stable/c/a4a09e5142835633fffbde68bd0a039ba4d4bf97"},{"url":"https://git.kernel.org/stable/c/b09ae45d85dc816987a71db9eebc54b0ae288e94"}],"title":"smb/client: handle overlapping allocated ranges in fallocate","x_generator":{"engine":"bippy-1.2.0"}}},"cveMetadata":{"assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","assignerShortName":"Linux","cveId":"CVE-2026-68388","datePublished":"2026-08-10T12:04:07.304Z","dateReserved":"2026-07-30T09:28:09.388Z","dateUpdated":"2026-08-19T16:34:42.827Z","state":"PUBLISHED"},"dataType":"CVE_RECORD","dataVersion":"5.2"},"nvd":{"publishedDate":"2026-08-10 13:20:32","lastModifiedDate":"2026-08-19 17:20:47","problem_types":[],"metrics":{"cvssMetricV31":[{"source":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","type":"Secondary","cvssData":{"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","attackVector":"NETWORK","attackComplexity":"LOW","privilegesRequired":"NONE","userInteraction":"NONE","scope":"UNCHANGED","confidentialityImpact":"HIGH","integrityImpact":"HIGH","availabilityImpact":"HIGH"},"exploitabilityScore":3.9,"impactScore":5.9}]},"configurations":[]},"legacy_mitre":{"record":{"CveYear":"2026","CveId":"68388","Ordinal":"1","Title":"smb/client: handle overlapping allocated ranges in fallocate","CVE":"CVE-2026-68388","Year":"2026"},"notes":[{"CveYear":"2026","CveId":"68388","Ordinal":"1","NoteData":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb/client: handle overlapping allocated ranges in fallocate\n\nsmb3_simple_fallocate_range() can skip holes when an allocated range\nreturned by the server starts before the current fallocate offset. The\nskipped hole is not zero-filled, but fallocate still returns success. A\nlater write to that hole may therefore fail with ENOSPC.\n\nThe function queries allocated ranges so that it can preserve existing\ncontents and write zeroes only into holes. However, the server may return\na range that starts before the current fallocate offset.\n\nFor example, assume the fallocate request is [100, 400) and the only\nallocated range returned by the server is [0, 200):\n\n        Request:      [100, 400)\n        Server range: [  0, 200)  allocated\n\n        Correct:\n        [100, 200)    allocated data, skip\n        [200, 400)    hole, zero-fill\n\n        Current:\n        [100, 300)    skipped\n        [300, 400)    zero-filled afterwards\n\nThe current code adds the full server range length, 200, to the current\noffset 100 and moves to 300. As a result, the hole in [200, 300) is\nskipped without being zero-filled.\n\nFix this by advancing only over the part of the allocated range that\noverlaps the current fallocate offset.  Ignore ranges that end before the\ncurrent offset and reject ranges whose end offset overflows.\n\nThis also prevents a malformed range length from causing an out-of-bounds\nzero-buffer read.","Type":"Description","Title":"smb/client: handle overlapping allocated ranges in fallocate"}]}}}