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

smb: client: flush dirty data before zeroing a range

smb3_zero_range() emulates FALLOC_FL_ZERO_RANGE by invalidating the
page cache over the target range with truncate_pagecache_range() and
then issuing FSCTL_SET_ZERO_DATA to the server.

Dirty data was only flushed conditionally, when the range reached or
extended EOF. For a purely interior zero range that does not reach
EOF, no flush happened, so a dirty folio overlapping the range could
be written back to the server after the FSCTL and refill the range
that was just zeroed with stale data.

Fix this by unconditionally flushing and waiting for dirty data in the
range before invalidating the page cache and issuing
FSCTL_SET_ZERO_DATA, exactly as was done for smb3_punch_hole() in
commit d7d2adcd022b ("smb/client: flush dirty data before punching a
hole"); the two paths are structurally identical here.

This is observed as generic/363 randomly reading stale data where a
zeroed range is expected against Windows Server.
Published: 2026-10-18
Score: n/a
EPSS: n/a
KEV: No
Impact: Data Exposure
Action: Apply Patch
AI Analysis

Impact

The Linux kernel’s SMB client contained a flaw where dirty page cache data was only flushed when a zeroed range touched the end-of-file. When a purely interior range was zeroed, the page cache was invalidated and the server was instructed to zero the range via FSCTL_SET_ZERO_DATA, but the dirty data remained unsafely cached. Consequently, a stale copy of that data could be written back to the server and later read, exposing information that should have been purged. The attack results in unintended disclosure of file contents that had previously been considered erased.

Affected Systems

All Linux kernel releases that have not been updated with the commit fixing this issue are affected. The specific version range is not listed, so any system running an unpatched kernel may be vulnerable. The vulnerability applies to all Linux distributions that use the default kernel.

Risk and Exploitability

The CVSS score is not provided, and the EPSS score is unavailable; the vulnerability is not listed in the CISA KEV catalog, indicating no publicly known exploit code. Nonetheless, the flaw permits data leakage when SMB clients perform zeroing operations on interior ranges, which could be leveraged by an attacker with access to the SMB connection or by local users manipulating the kernel’s behavior. The risk is considered moderate to high if sensitive data is stored on SMB shares, but the likelihood of exploitation remains low until an attacker actively uses zero_range operations in a context that triggers the stale data path.

Generated by OpenCVE AI on October 18, 2026 at 18:46 UTC.

Remediation

No solution or workaround provided in the CVE record.

OpenCVE Recommended Actions

  • Update the Linux kernel to a patched version that incorporates the SMB zero-range fix.
  • If a kernel upgrade cannot be applied immediately, avoid using smbd operations that zero internal file ranges or replace them with manual truncation followed by explicit zeroing using application logic.
  • After zeroing operations, verify file integrity through checksums or other consistency checks to ensure no stale data remains.

Generated by OpenCVE AI on October 18, 2026 at 18:46 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Sun, 18 Oct 2026 19:15:00 +0000

Type Values Removed Values Added
Weaknesses CWE-596

Sun, 18 Oct 2026 16:00:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: smb: client: flush dirty data before zeroing a range smb3_zero_range() emulates FALLOC_FL_ZERO_RANGE by invalidating the page cache over the target range with truncate_pagecache_range() and then issuing FSCTL_SET_ZERO_DATA to the server. Dirty data was only flushed conditionally, when the range reached or extended EOF. For a purely interior zero range that does not reach EOF, no flush happened, so a dirty folio overlapping the range could be written back to the server after the FSCTL and refill the range that was just zeroed with stale data. Fix this by unconditionally flushing and waiting for dirty data in the range before invalidating the page cache and issuing FSCTL_SET_ZERO_DATA, exactly as was done for smb3_punch_hole() in commit d7d2adcd022b ("smb/client: flush dirty data before punching a hole"); the two paths are structurally identical here. This is observed as generic/363 randomly reading stale data where a zeroed range is expected against Windows Server.
Title smb: client: flush dirty data before zeroing a range
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-10-18T15:45:50.014Z

Reserved: 2026-09-25T10:25:14.364Z

Link: CVE-2026-98683

cve-icon Vulnrichment

No data.

cve-icon NVD

Status : Received

Published: 2026-10-18T16:17:21.660

Modified: 2026-10-18T16:17:21.660

Link: CVE-2026-98683

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-10-18T19:00:11Z

Weaknesses
  • CWE-596

    DEPRECATED: Incorrect Semantic Object Comparison