smb/client: handle overlapping allocated ranges in fallocate (Linux Linux)

CVE-2026-68388
CRITICAL 9.8

At a glance

Source
NVD
EPSS
EPSS 0.51 % · percentile 44 ()
State
PUBLISHED
Published
Updated
Assigner
Linux
NVD status
Received

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.

Weaknesses (CWE)

  • CWE-125 — Out-of-bounds Read

References

Scores

VersionScoreVectorScored by
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HLinux
CVSS 3.1CRITICAL 9.8CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:HNVD · 416baaa9-dc9f-4396-8d5f-8c081fb06d67 (Secondary)

European references

CERT-FR advisories

Affected products

ProductVersions
Linux · Linuxaffected c406bb9ece6ef63721daab106f132ff4b4234e81 < aeb58a4eb39a7ff4d7782b4f4ada0fda5e0675d2 ; affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 01719883235507b1585e4c51e320d9a7113dc698 ; affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < f47c7277c03a636fcc3a57969f2dc09567b3c050 ; affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 437637f5ff3f573b2edf8571de91fb00a21eb4e6 ; affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 377fe3e583e46369ee1004d5cfe12271d6589a68 ; affected 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < 7e08ab7a061b17ac1989a225c6afb53f44a86808
Linux · Linuxaffected 5.14 ; unaffected 0 < 5.14 ; unaffected 5.10.265 ≤ 5.10.* ; unaffected 5.15.216 ≤ 5.15.* ; unaffected 6.1.183 ≤ 6.1.* ; unaffected 6.6.148 ≤ 6.6.*

Sources

SourceLicence
CVE List (CVEProject cvelistV5)CVE Program Terms of Use
EPSS (FIRST.org)FIRST — attribution requested
ENISA EUVDENISA — reproduction authorised, source acknowledged
CERT-FR (ANSSI)Licence Ouverte / Etalab 2.0
NVD (NIST) via fkie-cad/nvd-json-data-feedsPublic domain — this product uses data from the NVD API but is not endorsed or certified by the NVD