{"id":"CVE-2026-64399","state":"PUBLISHED","title":"ksmbd: add permission checks for FSCTL_DUPLICATE_EXTENTS_TO_FILE","description":"In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: add permission checks for FSCTL_DUPLICATE_EXTENTS_TO_FILE\n\nThe FSCTL_DUPLICATE_EXTENTS_TO_FILE arm of smb2_ioctl() overwrites the\ndestination file's data via vfs_clone_file_range() with neither the\nshare-level KSMBD_TREE_CONN_FLAG_WRITABLE check nor a per-handle\nfp->daccess check that the other write-bearing arms carry. A client can\noverwrite destination data on a read-only share, or from a handle opened\nwith only FILE_WRITE_ATTRIBUTES (which still yields an FMODE_WRITE filp).\nFILE_WRITE_ATTRIBUTES-only destination handle overwrote the file's data via\nthe clone. Add both checks, matching the FSCTL_SET_SPARSE permission fix;\nrequire FILE_WRITE_DATA since this writes data.","publishedAt":"2026-07-25T08:50:42.925Z","updatedAt":"2026-08-17T04:54:56.640Z","severity":{"score":9.8,"label":"Critical","version":"3.1","vector":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","source":"Linux"},"assigner":"Linux","products":["Linux Linux"],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"bf460ad5958d506492de4524a656439da3f99c51","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"620d133d469295ee7c017ca6aafac335f65c4a5a","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"9b9cf7e65cbeaae1b6636144bacee611cdd7a5d6","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"baae7b39673ec21073a25e3d14f8feaada01d5df","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"c917e4522d251071dde9871b9142d8ea1186ebfe","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"388e4139db27a9e3612c9d356b826f5b1ff6a9e3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/smb2pdu.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.15","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/smb2pdu.c"]}],"references":["https://git.kernel.org/stable/c/bf460ad5958d506492de4524a656439da3f99c51","https://git.kernel.org/stable/c/620d133d469295ee7c017ca6aafac335f65c4a5a","https://git.kernel.org/stable/c/9b9cf7e65cbeaae1b6636144bacee611cdd7a5d6","https://git.kernel.org/stable/c/baae7b39673ec21073a25e3d14f8feaada01d5df","https://git.kernel.org/stable/c/c917e4522d251071dde9871b9142d8ea1186ebfe","https://git.kernel.org/stable/c/388e4139db27a9e3612c9d356b826f5b1ff6a9e3"],"weaknesses":[],"ingestedAt":"2026-10-29T20:12:41.951Z","source":{"repository":"CVEProject/cvelistV5","path":"cves/2026/64xxx/CVE-2026-64399.json","commit":"556c9d3a8cd17e218bb8e452ba7cd619a384ff47"},"raw":{"dataType":"CVE_RECORD","dataVersion":"5.2","cveMetadata":{"cveId":"CVE-2026-64399","state":"PUBLISHED","datePublished":"2026-07-25T08:50:42.925Z","dateUpdated":"2026-08-17T04:54:56.640Z","assignerShortName":"Linux","assignerOrgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateReserved":"2026-07-19T15:36:31.785Z"},"containers":{"cna":{"title":"ksmbd: add permission checks for FSCTL_DUPLICATE_EXTENTS_TO_FILE","descriptions":[{"lang":"en","value":"In the Linux kernel, the following vulnerability has been resolved:\n\nksmbd: add permission checks for FSCTL_DUPLICATE_EXTENTS_TO_FILE\n\nThe FSCTL_DUPLICATE_EXTENTS_TO_FILE arm of smb2_ioctl() overwrites the\ndestination file's data via vfs_clone_file_range() with neither the\nshare-level KSMBD_TREE_CONN_FLAG_WRITABLE check nor a per-handle\nfp->daccess check that the other write-bearing arms carry. A client can\noverwrite destination data on a read-only share, or from a handle opened\nwith only FILE_WRITE_ATTRIBUTES (which still yields an FMODE_WRITE filp).\nFILE_WRITE_ATTRIBUTES-only destination handle overwrote the file's data via\nthe clone. Add both checks, matching the FSCTL_SET_SPARSE permission fix;\nrequire FILE_WRITE_DATA since this writes data."}],"affected":[{"vendor":"Linux","product":"Linux","defaultStatus":"unaffected","versions":[{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"bf460ad5958d506492de4524a656439da3f99c51","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"620d133d469295ee7c017ca6aafac335f65c4a5a","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"9b9cf7e65cbeaae1b6636144bacee611cdd7a5d6","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"baae7b39673ec21073a25e3d14f8feaada01d5df","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"c917e4522d251071dde9871b9142d8ea1186ebfe","versionType":"git"},{"version":"eb817368f50c1cbe1bd07044124aad7db6330e3a","status":"affected","lessThan":"388e4139db27a9e3612c9d356b826f5b1ff6a9e3","versionType":"git"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/smb2pdu.c"]},{"vendor":"Linux","product":"Linux","defaultStatus":"affected","versions":[{"version":"5.15","status":"affected"},{"version":"0","status":"unaffected","lessThan":"5.15","versionType":"semver"},{"version":"6.1.178","status":"unaffected","lessThanOrEqual":"6.1.*","versionType":"semver"},{"version":"6.6.145","status":"unaffected","lessThanOrEqual":"6.6.*","versionType":"semver"},{"version":"6.12.96","status":"unaffected","lessThanOrEqual":"6.12.*","versionType":"semver"},{"version":"6.18.39","status":"unaffected","lessThanOrEqual":"6.18.*","versionType":"semver"},{"version":"7.1.4","status":"unaffected","lessThanOrEqual":"7.1.*","versionType":"semver"},{"version":"7.2","status":"unaffected","lessThanOrEqual":"*","versionType":"original_commit_for_fix"}],"repo":"https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git","programFiles":["fs/smb/server/smb2pdu.c"]}],"references":[{"url":"https://git.kernel.org/stable/c/bf460ad5958d506492de4524a656439da3f99c51"},{"url":"https://git.kernel.org/stable/c/620d133d469295ee7c017ca6aafac335f65c4a5a"},{"url":"https://git.kernel.org/stable/c/9b9cf7e65cbeaae1b6636144bacee611cdd7a5d6"},{"url":"https://git.kernel.org/stable/c/baae7b39673ec21073a25e3d14f8feaada01d5df"},{"url":"https://git.kernel.org/stable/c/c917e4522d251071dde9871b9142d8ea1186ebfe"},{"url":"https://git.kernel.org/stable/c/388e4139db27a9e3612c9d356b826f5b1ff6a9e3"}],"metrics":[{"cvssV3_1":{"version":"3.1","vectorString":"CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H","baseScore":9.8,"baseSeverity":"CRITICAL"},"scenarios":[{"lang":"en","value":"AV:N - An attacker reaches smb2_ioctl() remotely through ksmbd’s SMB service on TCP port 445.\nAC:L - The attacker directly controls both file handles, offsets, length, and request timing; no race or uncontrollable condition is required on a clone-capable filesystem.\nPR:N - A passwordless guest session on a guest-enabled share can obtain the required session, tree connection, and file handles without credentials.\nUI:N - The attacker independently negotiates the SMB session, opens the files, and submits the malicious IOCTL without victim action.\nS:U - The unauthorized file modification and any resulting code execution remain within the host kernel and services governed by the same security authority.\nC:H - In a plausible share containing service-loaded code or configuration, attacker-controlled extent replacement can yield code execution and consequent access to sensitive data.\nI:H - The attacker can overwrite arbitrary destination ranges with chosen source data despite a read-only share or a handle lacking FILE_WRITE_DATA.\nA:H - Repeated or complete corruption of critical files, databases, executables, or service configuration can cause a persistent loss of the affected system or service."}]}],"providerMetadata":{"shortName":"Linux","orgId":"416baaa9-dc9f-4396-8d5f-8c081fb06d67","dateUpdated":"2026-08-17T04:54:56.640Z"},"cpeApplicability":[{"nodes":[{"operator":"OR","negate":false,"cpeMatch":[{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.1.178"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.6.145"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.12.96"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"6.18.39"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"7.1.4"},{"vulnerable":true,"criteria":"cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*","versionStartIncluding":"5.15","versionEndExcluding":"7.2"}]}]}],"x_generator":{"engine":"bippy-1.2.0"}}}}}