---
id: CVE-2026-68388
title: 'smb/client: handle overlapping allocated ranges in fallocate'
summary: |-
  In the Linux kernel, the following vulnerability has been resolved:

  smb/client: handle overlapping allocated ranges in fallocate

  smb3_simple_fallocate_range() can skip holes when an allocated range
  returned by the server starts before …
severity: critical
cvss: 9.8
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H'
cvssSource: cna
vendor: Linux
product: Linux
affected:
  - >-
    Linux >= c406bb9ece6ef63721daab106f132ff4b4234e81 <
    aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2
  - >-
    Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b <
    01719883235507b1585e4c51e320d9a7113dc698
  - >-
    Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b <
    f47c7277c03a636fcc3a57969f2dc09567b3c050
  - >-
    Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b <
    437637f5ff3f573b2edf8571de91fb00a21eb4e6
  - >-
    Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b <
    377fe3e583e46369ee1004d5cfe12271d6589a68
  - >-
    Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b <
    7e08ab7a061b17ac1989a225c6afb53f44a86808
  - >-
    Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b <
    a4a09e5142835633fffbde68bd0a039ba4d4bf97
  - >-
    Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b <
    b09ae45d85dc816987a71db9eebc54b0ae288e94
  - Linux 2f9f4a2d0e6fcf0673ed51195e06e47abe966900
  - Linux 5e397c943424de94879830e72c95f2679e297a76
  - Linux >= 5.10.50 < 5.10.265
  - Linux >= 5.12.17 < 5.13
  - Linux >= 5.13.2 < 5.14
  - Linux 5.14
ssvc:
  exploitation: none
  automatable: 'yes'
  technicalImpact: total
  timestamp: '2026-10-16T15:47:53.412861Z'
published: '2026-08-10'
updated: '2026-10-16'
sourceUpdated: '2026-10-16T15:53:10.983Z'
source: CVEORG
sourceUrl: 'https://www.cve.org/CVERecord?id=CVE-2026-68388'
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'
tags:
  - cve.org
epss: 0.00514
epssPercentile: 0.4249
ingestedAt: '2026-10-16T17:24:46.864Z'
---

## Overview

In the Linux kernel, the following vulnerability has been resolved:

smb/client: handle overlapping allocated ranges in fallocate

smb3_simple_fallocate_range() can skip holes when an allocated range
returned by the server starts before the current fallocate offset. The
skipped hole is not zero-filled, but fallocate still returns success. A
later write to that hole may therefore fail with ENOSPC.

The function queries allocated ranges so that it can preserve existing
contents and write zeroes only into holes. However, the server may return
a range that starts before the current fallocate offset.

For example, assume the fallocate request is [100, 400) and the only
allocated range returned by the server is [0, 200):

        Request:      [100, 400)
        Server range: [  0, 200)  allocated

        Correct:
        [100, 200)    allocated data, skip
        [200, 400)    hole, zero-fill

        Current:
        [100, 300)    skipped
        [300, 400)    zero-filled afterwards

The current code adds the full server range length, 200, to the current
offset 100 and moves to 300. As a result, the hole in [200, 300) is
skipped without being zero-filled.

Fix this by advancing only over the part of the allocated range that
overlaps the current fallocate offset.  Ignore ranges that end before the
current offset and reject ranges whose end offset overflows.

This also prevents a malformed range length from causing an out-of-bounds
zero-buffer read.

## Affected

- `Linux >= c406bb9ece6ef63721daab106f132ff4b4234e81 < aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2`
- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 01719883235507b1585e4c51e320d9a7113dc698`
- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < f47c7277c03a636fcc3a57969f2dc09567b3c050`
- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 437637f5ff3f573b2edf8571de91fb00a21eb4e6`
- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 377fe3e583e46369ee1004d5cfe12271d6589a68`
- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 7e08ab7a061b17ac1989a225c6afb53f44a86808`
- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < a4a09e5142835633fffbde68bd0a039ba4d4bf97`
- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < b09ae45d85dc816987a71db9eebc54b0ae288e94`
- `Linux 2f9f4a2d0e6fcf0673ed51195e06e47abe966900`
- `Linux 5e397c943424de94879830e72c95f2679e297a76`
- `Linux >= 5.10.50 < 5.10.265`
- `Linux >= 5.12.17 < 5.13`
- `Linux >= 5.13.2 < 5.14`
- `Linux 5.14`

## Remediation

Refer to the linked advisories for vendor-supplied fixes and affected version ranges.
