Skip to content

CVE-2026-98685 smb: client: discard post-EOF pagecache when extending a file via clone range

MediumCVSS 4.8 EPSS 0.20%
Published
Updated
Exploit status
No public exploit known

Description

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

smb: client: discard post-EOF pagecache when extending a file via clone range

cifs_remap_file_range() discarded the pagecache only for the folios
overlapping the destination region, so when a clone extends the file the
folio straddling the old EOF - which may hold data dirtied past EOF
through an mmap - was never dropped and became visible as file content
once the file was extended.

Start the discard at the smaller of fstart and the old EOF. i_size is
still old here, so nothing past the old EOF is flushed to the server.

Affected products

ProductAffected versionsFixed in
redhat/kernel(Red Hat:enterprise_linux:10) All versions No fix listed
redhat/kernel(Red Hat:enterprise_linux:9) All versions No fix listed
redhat/openshift/ose-rhel-coreos-9(Red Hat:openshift:4) All versions No fix listed
redhat/openshift/ose-rhel-coreos-9(Red Hat:openshift:5) All versions No fix listed
Linux kernel >= c54fc3a4f375663f2361a9cbb2955fb4ef912879, < eba974d6c850e77db87f6f9ae343164227dffefc eba974d6c850e77db87f6f9ae343164227dffefc
Linux kernel >= c54fc3a4f375663f2361a9cbb2955fb4ef912879, < 7beb2f2a58023b2ff28fd52bdb72bed74257ee04 7beb2f2a58023b2ff28fd52bdb72bed74257ee04
Linux kernel >= c54fc3a4f375663f2361a9cbb2955fb4ef912879, < 15bb9f1d3e967e328649e92a1451e60a0dc66118 15bb9f1d3e967e328649e92a1451e60a0dc66118
Linux kernel >= c54fc3a4f375663f2361a9cbb2955fb4ef912879, < 4721587f96cb8de8164f3fd203093a0875560999 4721587f96cb8de8164f3fd203093a0875560999
Linux kernel = 358bd5f436d820bb758833050aae065b35d6986c No fix listed
Linux kernel = 43801359c8971cc49b4a4db5015fba77fbd09c32 No fix listed
Linux kernel >= 6.1.68, < 6.2 6.2
Linux kernel >= 6.6.7, < 6.7 6.7
Linux kernel = 6.7 No fix listed
Linux kernel < 6.12.117 6.12.117
Linux kernel < 6.18.61 6.18.61
Linux kernel < 7.2.10 7.2.10
Linux kernel < 7.3 7.3
ubuntu/linux(Ubuntu:24.04) All versions No fix listed
ubuntu/linux-raspi(Ubuntu:24.04) All versions No fix listed
ubuntu/linux(Ubuntu:26.04) < 7.0.0-43.43 7.0.0-43.43
ubuntu/linux-raspi(Ubuntu:26.04) < 7.0.0-1023.23 7.0.0-1023.23
debian/linux(Debian:12) All versions No fix listed
debian/linux(Debian:12) = 6.1.106-1 No fix listed
debian/linux(Debian:12) = 6.1.106-2 No fix listed
debian/linux(Debian:12) = 6.1.106-3 No fix listed
Show 175 more
ProductAffected versionsFixed in
debian/linux(Debian:12) = 6.1.112-1 No fix listed
debian/linux(Debian:12) = 6.1.115-1 No fix listed
debian/linux(Debian:12) = 6.1.119-1 No fix listed
debian/linux(Debian:12) = 6.1.123-1 No fix listed
debian/linux(Debian:12) = 6.1.124-1 No fix listed
debian/linux(Debian:12) = 6.1.128-1 No fix listed
debian/linux(Debian:12) = 6.1.129-1 No fix listed
debian/linux(Debian:12) = 6.1.133-1 No fix listed
debian/linux(Debian:12) = 6.1.135-1 No fix listed
debian/linux(Debian:12) = 6.1.137-1 No fix listed
debian/linux(Debian:12) = 6.1.139-1 No fix listed
debian/linux(Debian:12) = 6.1.140-1 No fix listed
debian/linux(Debian:12) = 6.1.147-1 No fix listed
debian/linux(Debian:12) = 6.1.148-1 No fix listed
debian/linux(Debian:12) = 6.1.153-1 No fix listed
debian/linux(Debian:12) = 6.1.158-1 No fix listed
debian/linux(Debian:12) = 6.1.159-1 No fix listed
debian/linux(Debian:12) = 6.1.162-1 No fix listed
debian/linux(Debian:12) = 6.1.164-1 No fix listed
debian/linux(Debian:12) = 6.1.170-1 No fix listed
debian/linux(Debian:12) = 6.1.170-2 No fix listed
debian/linux(Debian:12) = 6.1.170-3 No fix listed
debian/linux(Debian:12) = 6.1.172-1 No fix listed
debian/linux(Debian:12) = 6.1.174-1 No fix listed
debian/linux(Debian:12) = 6.1.176-1 No fix listed
debian/linux(Debian:12) = 6.1.177-1 No fix listed
debian/linux(Debian:12) = 6.1.180-1 No fix listed
debian/linux(Debian:12) = 6.1.187-1 No fix listed
debian/linux(Debian:12) = 6.1.190-1 No fix listed
debian/linux(Debian:12) = 6.1.27-1 No fix listed
debian/linux(Debian:12) = 6.1.37-1 No fix listed
debian/linux(Debian:12) = 6.1.38-1 No fix listed
debian/linux(Debian:12) = 6.1.38-2 No fix listed
debian/linux(Debian:12) = 6.1.38-2~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.38-3 No fix listed
debian/linux(Debian:12) = 6.1.38-4 No fix listed
debian/linux(Debian:12) = 6.1.38-4~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.52-1 No fix listed
debian/linux(Debian:12) = 6.1.55-1 No fix listed
debian/linux(Debian:12) = 6.1.55-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.64-1 No fix listed
debian/linux(Debian:12) = 6.1.66-1 No fix listed
debian/linux(Debian:12) = 6.1.67-1 No fix listed
debian/linux(Debian:12) = 6.1.69-1 No fix listed
debian/linux(Debian:12) = 6.1.69-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.76-1 No fix listed
debian/linux(Debian:12) = 6.1.76-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.82-1 No fix listed
debian/linux(Debian:12) = 6.1.85-1 No fix listed
debian/linux(Debian:12) = 6.1.90-1 No fix listed
debian/linux(Debian:12) = 6.1.90-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.94-1 No fix listed
debian/linux(Debian:12) = 6.1.94-1~bpo11+1 No fix listed
debian/linux(Debian:12) = 6.1.98-1 No fix listed
debian/linux(Debian:12) = 6.1.99-1 No fix listed
debian/linux(Debian:12) = 6.10-1~exp1 No fix listed
debian/linux(Debian:12) = 6.10.1-1~exp1 No fix listed
debian/linux(Debian:12) = 6.10.11-1 No fix listed
debian/linux(Debian:12) = 6.10.11-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.10.12-1 No fix listed
debian/linux(Debian:12) = 6.10.3-1 No fix listed
debian/linux(Debian:12) = 6.10.4-1 No fix listed
debian/linux(Debian:12) = 6.10.6-1 No fix listed
debian/linux(Debian:12) = 6.10.6-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.10.7-1 No fix listed
debian/linux(Debian:12) = 6.10.9-1 No fix listed
debian/linux(Debian:12) = 6.11-1~exp1 No fix listed
debian/linux(Debian:12) = 6.11.10-1 No fix listed
debian/linux(Debian:12) = 6.11.10-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.11.2-1 No fix listed
debian/linux(Debian:12) = 6.11.4-1 No fix listed
debian/linux(Debian:12) = 6.11.5-1 No fix listed
debian/linux(Debian:12) = 6.11.5-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.11.6-1 No fix listed
debian/linux(Debian:12) = 6.11.7-1 No fix listed
debian/linux(Debian:12) = 6.11.9-1 No fix listed
debian/linux(Debian:12) = 6.11~rc4-1~exp1 No fix listed
debian/linux(Debian:12) = 6.11~rc5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.12.10-1 No fix listed
debian/linux(Debian:12) = 6.12.100-1 No fix listed
debian/linux(Debian:12) = 6.12.101-1 No fix listed
debian/linux(Debian:12) = 6.12.105-1 No fix listed
debian/linux(Debian:12) = 6.12.107-1 No fix listed
debian/linux(Debian:12) = 6.12.11-1 No fix listed
debian/linux(Debian:12) = 6.12.11-1+alpha No fix listed
debian/linux(Debian:12) = 6.12.11-1+alpha.1 No fix listed
debian/linux(Debian:12) = 6.12.111-1 No fix listed
debian/linux(Debian:12) = 6.12.113-1 No fix listed
debian/linux(Debian:12) = 6.12.115-1 No fix listed
debian/linux(Debian:12) = 6.12.115-2 No fix listed
debian/linux(Debian:12) = 6.12.116-1 No fix listed
debian/linux(Debian:12) = 6.12.117-1 No fix listed
debian/linux(Debian:12) = 6.12.12-1 No fix listed
debian/linux(Debian:12) = 6.12.12-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.13-1 No fix listed
debian/linux(Debian:12) = 6.12.15-1 No fix listed
debian/linux(Debian:12) = 6.12.16-1 No fix listed
debian/linux(Debian:12) = 6.12.17-1 No fix listed
debian/linux(Debian:12) = 6.12.19-1 No fix listed
debian/linux(Debian:12) = 6.12.20-1 No fix listed
debian/linux(Debian:12) = 6.12.21-1 No fix listed
debian/linux(Debian:12) = 6.12.22-1 No fix listed
debian/linux(Debian:12) = 6.12.22-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.25-1 No fix listed
debian/linux(Debian:12) = 6.12.27-1 No fix listed
debian/linux(Debian:12) = 6.12.27-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.29-1 No fix listed
debian/linux(Debian:12) = 6.12.3-1 No fix listed
debian/linux(Debian:12) = 6.12.30-1 No fix listed
debian/linux(Debian:12) = 6.12.30-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.31-1 No fix listed
debian/linux(Debian:12) = 6.12.32-1 No fix listed
debian/linux(Debian:12) = 6.12.32-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.33-1 No fix listed
debian/linux(Debian:12) = 6.12.33-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.35-1 No fix listed
debian/linux(Debian:12) = 6.12.35-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.37-1 No fix listed
debian/linux(Debian:12) = 6.12.38-1 No fix listed
debian/linux(Debian:12) = 6.12.38-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.41-1 No fix listed
debian/linux(Debian:12) = 6.12.43-1 No fix listed
debian/linux(Debian:12) = 6.12.43-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.48-1 No fix listed
debian/linux(Debian:12) = 6.12.5-1 No fix listed
debian/linux(Debian:12) = 6.12.57-1 No fix listed
debian/linux(Debian:12) = 6.12.57-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.6-1 No fix listed
debian/linux(Debian:12) = 6.12.63-1 No fix listed
debian/linux(Debian:12) = 6.12.63-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.69-1 No fix listed
debian/linux(Debian:12) = 6.12.69-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.73-1 No fix listed
debian/linux(Debian:12) = 6.12.73-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.74-1 No fix listed
debian/linux(Debian:12) = 6.12.74-2 No fix listed
debian/linux(Debian:12) = 6.12.74-2~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.8-1 No fix listed
debian/linux(Debian:12) = 6.12.85-1 No fix listed
debian/linux(Debian:12) = 6.12.85-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.86-1 No fix listed
debian/linux(Debian:12) = 6.12.86-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.88-1 No fix listed
debian/linux(Debian:12) = 6.12.88-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.9-1 No fix listed
debian/linux(Debian:12) = 6.12.9-1+alpha No fix listed
debian/linux(Debian:12) = 6.12.9-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.90-1 No fix listed
debian/linux(Debian:12) = 6.12.90-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.90-2 No fix listed
debian/linux(Debian:12) = 6.12.90-2~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.94-1 No fix listed
debian/linux(Debian:12) = 6.12.94-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.95-1 No fix listed
debian/linux(Debian:12) = 6.12.95-1~bpo12+1 No fix listed
debian/linux(Debian:12) = 6.12.96-1 No fix listed
debian/linux(Debian:12) = 6.12~rc6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.10-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.11-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.2-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.3-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.4-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.7-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.8-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13.9-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13~rc6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.13~rc7-1~exp1 No fix listed
debian/linux(Debian:12) = 6.14.3-1~exp1 No fix listed
debian/linux(Debian:12) = 6.14.5-1~exp1 No fix listed
debian/linux(Debian:12) = 6.14.6-1~exp1 No fix listed
debian/linux(Debian:12) = 6.15-1~exp1 No fix listed
debian/linux(Debian:12) = 6.15.1-1~exp1 No fix listed
debian/linux(Debian:12) = 6.15.2-1~exp1 No fix listed

References