CVE-2026-98682smb: client: drain and invalidate before server-side copy/clone
- —Not scoredno CVSS score yet
- 0.17%Exploitation in 30 daysEPSS · top 94% of all CVEs
- NoKnown exploitednot in CISA's KEV catalog
- NonePublic exploitsnone known yet
Description
In the Linux kernel, the following vulnerability has been resolved: smb: client: drain and invalidate before server-side copy/clone cifs_file_copychunk_range() and the clone (FICLONE) path of cifs_remap_file_range() do not serialise the destination page cache against the server-side copy the way the other server-side range operations (smb3_zero_range(), smb3_punch_hole(), smb3_collapse_range() and smb3_insert_range()) do. cifs_file_copychunk_range() invalidates the destination range with filemap_invalidate_inode(), which takes and drops the mapping's invalidate_lock internally, so the lock is no longer held when the copychunk ioctl is issued. It also never drains in-flight netfs I/O on the target. The clone path never takes the invalidate_lock at all (only i_rwsem), uses a bare truncate_inode_pages_range() and likewise does not drain outstanding I/O. As a result an asynchronous destination writeback can complete after the server-side copy/clone has run and reinstate stale data over the region just written by the server, corrupting the file. This is the same class of corruption as commit d7d2adcd022b ("smb/client: flush dirty data before punching a hole") and has been seen randomly in generic/363 against Windows Server. Fix both paths to follow the established ordering: hold the target mapping's invalidate_lock across the flush and invalidation of the destination and the server ioctl, and call netfs_wait_for_outstanding_io() on the target to drain in-flight writes before the ioctl is issued. Only the target inode's invalidate_lock is required, as the source is merely flushed and not invalidated; i_rwsem (already held via lock_two_nondirectories()) is acquired before the invalidate_lock, matching the VFS lock ordering. Since filemap_invalidate_inode() takes that same lock internally, replace it with its own unmap/flush/invalidate steps instead of calling it, and return early on a zero-length copy to avoid a range underflow.
Timeline
ID reserved
By Linux
- 23 days later
· 23 days later
Published
- 23 days later
· 23 days later
Record updated
Changes after publication (a new score, a public exploit, EPSS crossing 1, 10 or 50 %, leaving KEV) are kept since November 2026; earlier ones are not known.
Scores
No CVSS score yet: neither the CNA, CISA nor NVD has scored this CVE. NVD status: Received.
- EPSS (exploitation in 30 days)
- 0.17% · top 94% of all CVEs (12 Nov 2026)
The list uses the assigner's score when there is one, then CISA's, then NVD's: Not scored.
Affected products
- affected c54fc3a4f375663f2361a9cbb2955fb4ef912879 – < 6e7a06704457594f06e4ea58a17a5d162ccc735c
- affected c54fc3a4f375663f2361a9cbb2955fb4ef912879 – < e97dac26ed2cce04f9d159cc99e1eca828c5d49e
- affected c54fc3a4f375663f2361a9cbb2955fb4ef912879 – < dc71660f11ef2fecc0695a41e49cd496a9d255ab
- affected c54fc3a4f375663f2361a9cbb2955fb4ef912879 – < c9b1194e8ec99d95db25db45edd2fbf690f043ab
- affected 358bd5f436d820bb758833050aae065b35d6986c
- affected 43801359c8971cc49b4a4db5015fba77fbd09c32
- affected 6.1.68 – < 6.2
- affected 6.6.7 – < 6.7
- affected 6.7
- unaffected < 6.7
- unaffected 6.12.117 – ≤ 6.12.*
- unaffected 6.18.61 – ≤ 6.18.*
- unaffected 7.2.10 – ≤ 7.2.*
- unaffected 7.3 – ≤ *
References
References4
- https://git.kernel.org/stable/c/6e7a06704457594f06e4ea58a17a5d162ccc735c (opens in a new tab)
- https://git.kernel.org/stable/c/e97dac26ed2cce04f9d159cc99e1eca828c5d49e (opens in a new tab)
- https://git.kernel.org/stable/c/dc71660f11ef2fecc0695a41e49cd496a9d255ab (opens in a new tab)
- https://git.kernel.org/stable/c/c9b1194e8ec99d95db25db45edd2fbf690f043ab (opens in a new tab)
Sources
The same CVE in the primary databases and aggregators, to check against.
- CVE.org record (opens in a new tab)
- CVE List JSON (GitHub) (opens in a new tab)
- NVD (opens in a new tab)
- FIRST EPSS (opens in a new tab)
- EUVD EUVD-2026-103936 (opens in a new tab)
- OSV.dev (opens in a new tab)
- GitHub Advisories (opens in a new tab)
- CIRCL Vulnerability-Lookup (opens in a new tab)
Badge for a README or a ticket
[](https://cveledger.app/cve/CVE-2026-98682)Record last updated .