CVE-2026-68388: smb/client: handle overlapping allocated ranges in fallocate

Greg Kroah-Hartman <[email protected]>
Newsgroups org.kernel.vger.linux-cve-announce
Message-ID <2026081046-CVE-2026-68388-0434@gregkh>
From: Greg Kroah-Hartman <[email protected]>

Description
===========

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.

The Linux kernel CVE team has assigned CVE-2026-68388 to this issue.


Affected and fixed versions
===========================

	Issue introduced in 5.14 with commit 966a3cb7c7db786452a87afdc3b48858fc4d4d6b and fixed in 6.6.148 with commit 437637f5ff3f573b2edf8571de91fb00a21eb4e6
	Issue introduced in 5.14 with commit 966a3cb7c7db786452a87afdc3b48858fc4d4d6b and fixed in 6.12.101 with commit 377fe3e583e46369ee1004d5cfe12271d6589a68
	Issue introduced in 5.14 with commit 966a3cb7c7db786452a87afdc3b48858fc4d4d6b and fixed in 6.18.42 with commit 7e08ab7a061b17ac1989a225c6afb53f44a86808
	Issue introduced in 5.14 with commit 966a3cb7c7db786452a87afdc3b48858fc4d4d6b and fixed in 7.1.6 with commit a4a09e5142835633fffbde68bd0a039ba4d4bf97
	Issue introduced in 5.14 with commit 966a3cb7c7db786452a87afdc3b48858fc4d4d6b and fixed in 7.2-rc4 with commit b09ae45d85dc816987a71db9eebc54b0ae288e94
	Issue introduced in 5.10.50 with commit c406bb9ece6ef63721daab106f132ff4b4234e81
	Issue introduced in 5.12.17 with commit 2f9f4a2d0e6fcf0673ed51195e06e47abe966900
	Issue introduced in 5.13.2 with commit 5e397c943424de94879830e72c95f2679e297a76

Please see https://www.kernel.org for a full list of currently supported
kernel versions by the kernel community.

Unaffected versions might change over time as fixes are backported to
older supported kernel versions.  The official CVE entry at
	https://cve.org/CVERecord/?id=CVE-2026-68388
will be updated if fixes are backported, please check that for the most
up to date information about this issue.


Affected files
==============

The file(s) affected by this issue are:
	fs/smb/client/smb2ops.c


Mitigation
==========

The Linux kernel CVE team recommends that you update to the latest
stable kernel version for this, and many other bugfixes.  Individual
changes are never tested alone, but rather are part of a larger kernel
release.  Cherry-picking individual commits is not recommended or
supported by the Linux kernel community at all.  If however, updating to
the latest release is impossible, the individual changes to resolve this
issue can be found at these commits:
	https://git.kernel.org/stable/c/437637f5ff3f573b2edf8571de91fb00a21eb4e6
	https://git.kernel.org/stable/c/377fe3e583e46369ee1004d5cfe12271d6589a68
	https://git.kernel.org/stable/c/7e08ab7a061b17ac1989a225c6afb53f44a86808
	https://git.kernel.org/stable/c/a4a09e5142835633fffbde68bd0a039ba4d4bf97
	https://git.kernel.org/stable/c/b09ae45d85dc816987a71db9eebc54b0ae288e94
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.