CVE-2026-89640

cifs: fix loff_t underflow in cifs_remap_file_range() when len == 0

State
Published
Severity
7.1 High
Published
Sep 11, 2026
Updated
Oct 30, 2026
Reserved
Sep 11, 2026

Read the record on cve.org

Description

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().

Scores

CVSSScoreVectorSource
3.17.1 HighCVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:N/I:H/A:HLinux

Weaknesses

The record names no weakness.

Affected Products

ProductVersions
LinuxLinux
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before 2c6eede83b3de1268db92c7e49741761c954aa26Affected
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before ce813e5eebf46851e872ce59bdc34dc5dd4e29a4Affected
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before f3d1ae1e6bc4a9f559185b6e7bd2b6375ec2fdd4Affected
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before 7f62817fe049b0f3652518c1ba72631ec1e0a322Affected
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before b098f5e5858797827666e6cd73033f52fc39b5f6Affected
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before c2a0dcb5a7a1516aa6eb6d5cedca6a8e76527028Affected
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before b057ca17b656345d04669cb87f2aff9b31d873dbAffected
  • 04b38d601239b4d9be641b412cf4b7456a041c67 to before 6c322f5cf7476ded7a9a20f7be72462065a03c68Affected
LinuxLinux
  • 4.5Affected
  • before 4.5Not affected
  • 5.10.273 through 5.10.*Not affected
  • 5.15.224 through 5.15.*Not affected
  • 6.1.188 through 6.1.*Not affected
  • 6.6.157 through 6.6.*Not affected
  • 6.12.109 through 6.12.*Not affected
  • 6.18.50 through 6.18.*Not affected
  • 7.2.4 through 7.2.*Not affected
  • 7.3 and laterNot affected

References

Every record here comes from the CVE Program’s CVE List. © 1999–2026 The MITRE Corporation. CVE is a registered trademark of The MITRE Corporation. The records are reproduced under the CVE Program terms of use.