{"id":"CVE-2026-98684","title":"smb: client: flush and commit data before querying allocated ranges","summary":"In the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: flush and commit data before querying allocated ranges\n\nThe mode 0 / FALLOC_FL_KEEP_SIZE fallocate emulation for small interior\nranges in smb3_simple_fallo…","severity":"none","vendor":"Linux","product":"Linux","affected":["Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < f82242fe3109a3ef72f429540b5bdde08fbfb0e4","Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < bf84e44ff0ed802778eafd7ecb623635379cb506","Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < aa994489bd835547c191827acc460192e147032d","Linux c406bb9ece6ef63721daab106f132ff4b4234e81","Linux 2f9f4a2d0e6fcf0673ed51195e06e47abe966900","Linux 5e397c943424de94879830e72c95f2679e297a76","Linux >= 5.10.50 < 5.11","Linux >= 5.12.17 < 5.13","Linux >= 5.13.2 < 5.14","Linux 5.14"],"published":"2026-10-18","updated":"2026-10-18","sourceUpdated":"2026-10-18T15:45:52.828Z","source":"CVEORG","sourceUrl":"https://www.cve.org/CVERecord?id=CVE-2026-98684","references":[{"url":"https://git.kernel.org/stable/c/f82242fe3109a3ef72f429540b5bdde08fbfb0e4"},{"url":"https://git.kernel.org/stable/c/bf84e44ff0ed802778eafd7ecb623635379cb506"},{"url":"https://git.kernel.org/stable/c/aa994489bd835547c191827acc460192e147032d"}],"tags":["cve.org"],"ingestedAt":"2026-10-18T16:47:32.528Z","slug":"CVE-2026-98684","body":"## Overview\n\nIn the Linux kernel, the following vulnerability has been resolved:\n\nsmb: client: flush and commit data before querying allocated ranges\n\nThe mode 0 / FALLOC_FL_KEEP_SIZE fallocate emulation for small interior\nranges in smb3_simple_fallocate_range() issues\nFSCTL_QUERY_ALLOCATED_RANGES and zero-fills any sub-range the server\nreports as an unallocated hole, to force block allocation without\nchanging file contents.\n\nThis is unsafe against Windows servers.  Per the Win32 documentation,\nFSCTL_QUERY_ALLOCATED_RANGES only reports ranges that *may* contain\nnonzero data and is explicitly not coherent with recently written data:\n\n  \"a call to FSCTL_QUERY_ALLOCATED_RANGES [after writing to a network\n   file] would not necessarily return a correct list of allocated\n   regions.  To ensure coherency [...] flush the data to the file\"\n\nfsx (generic/363) reproduces the resulting corruption against Windows\nServer 2022: a range is written, an uncached read returns the data, yet\nthe next FSCTL_QUERY_ALLOCATED_RANGES on that range reports it as a whole\nhole, so the emulation overwrites live data with zeroes.  A network trace\nconfirmed the WRITE, the READ returning data and the query returning an\nempty range list within microseconds.  Samba does not exhibit this; its\nquery is coherent with the written data.\n\nWrite back the dirty pages, drain any outstanding I/O and issue an SMB2\nFLUSH to force the server to commit the data before querying the\nallocated ranges, so the query reflects the data actually present.\n\nWith this, generic/363 passes against both Windows Server 2022 and Samba\nover 100000 fsx operations.\n\n## Affected\n\n- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < f82242fe3109a3ef72f429540b5bdde08fbfb0e4`\n- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < bf84e44ff0ed802778eafd7ecb623635379cb506`\n- `Linux >= 966a3cb7c7db786452a87afdc3b48858fc4d4d6b < aa994489bd835547c191827acc460192e147032d`\n- `Linux c406bb9ece6ef63721daab106f132ff4b4234e81`\n- `Linux 2f9f4a2d0e6fcf0673ed51195e06e47abe966900`\n- `Linux 5e397c943424de94879830e72c95f2679e297a76`\n- `Linux >= 5.10.50 < 5.11`\n- `Linux >= 5.12.17 < 5.13`\n- `Linux >= 5.13.2 < 5.14`\n- `Linux 5.14`\n\n## Remediation\n\nRefer to the linked advisories for vendor-supplied fixes and affected version ranges.","depth":"sunlit","depthScore":3,"depthScoreParts":{"impact":2.8,"likelihood":0,"exploitation":0,"ransomware":0},"changes":[]}