CVE Catalog

CVE-2026-89640

HighCVSS 7.1
Published: Updated: Translated: NVD NIST

Exploitation Probability (EPSS)

Low risk
0.13%

2th percentile - higher than 2% of all known CVEs

Summary

In the Linux kernel CIFS client, cifs_remap_file_range() with len == 0 (clone to EOF) computes the effective length as i_size - off. If off exceeds the file size, the result is a negative loff_t, corrupting the ByteCount in the FSCTL_DUPLICATE_EXTENTS_TO_FILE request and inverting the range in filemap_write_and_wait_range(). The existing off >= i_size check only fires after the ioctl has already been sent.

Risk Assessment

May lead to data corruption or unpredictable behavior of file clone operations on SMB/CIFS shares. There is also a TOCTOU and 32-bit torn-read risk.

Recommendation

Update the Linux kernel to a version containing the fix that snapshots i_size once, rejects off > src_size with -EINVAL, and treats off == src_size as a no-op.

Other vulnerabilities in Linux kernel (CIFS client)

Original NVD description (English source)

In the Linux kernel, the following vulnerability has been resolved: cifs: fix loff_t underflow in cifs_remap_file_range() when len == 0 With len == 0 (clone to EOF), the effective length is computed as: len = src_inode->i_size - off; If off > i_size, this is a negative loff_t, corrupting the ByteCount in the FSCTL_DUPLICATE_EXTENTS_TO_FILE request and inverting the range in filemap_write_and_wait_range(). The existing off >= i_size check fires only after the ioctl has already been sent. Snapshot i_size_read() once for both the bounds check and the length calculation, eliminating the TOCTOU and 32-bit torn-read risk. Reject off > src_size with -EINVAL. Treat off == src_size as a no-op, consistent with __generic_remap_file_range_prep().

Vulnerability data from NVD (NIST) · CISA KEV · EPSS