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